Function at 0x537ed0
Capabilities:
Encode data using base64
Parse credit card information
Resolve function by parsing pe exports

Disassembly:
sub esp, 0x94
mov edx, dword [esp + 0xa4]
xor eax, eax
mov dword [esp + 0x80], eax
xor ecx, ecx
mov dword [esp + 0x6c], eax
push ebx
mov eax, dword [edx + 0x80]
xor ebx, ebx
mov dword [esp + 0x80], eax
mov eax, dword [edx]
push ebp
mov ebp, dword [edx + 0x20]
push esi
mov eax, dword [eax + 0x24]
mov esi, dword [edx + 0x7c]
mov dword [esp + 0x7c], ecx
mov dword [esp + 0x10], ecx
mov dword [esp + 0x74], eax
xor eax, eax
push edi
mov edi, dword [esp + 0xac]
mov ecx, edi
shr ecx, 2
mov dword [esp + 0x68], eax
and ecx, 1
mov dword [esp + 0x6c], eax
mov dword [esp + 0x28], eax
mov dword [esp + 0x54], eax
mov dword [esp + 0x70], eax
mov eax, edi
shr eax, 0x13
mov dword [esp + 0x74], ecx
and eax, 1
mov ecx, dword [esp + 0x78]
mov dword [esp + 0x88], ecx
and dword [esp + 0x88], 8
mov dword [esp + 0x18], ebx
mov dword [esp + 0x64], ebx
mov dword [esp + 0x1c], esi
mov dword [esp + 0x58], ebx
mov dword [esp + 0x44], eax
mov dword [esp + 0x20], ebx
mov dword [esp + 0x10], ebp
mov dword [esp + 0x94], ebx
je 0x537f87
mov dword [esi], 0x80090000
jmp 0x537f92
test cl, 4
je 0x537fa0
mov dword [esi], 0x80180005
mov dword [esi + 4], 0x801a0000
add esi, 8
mov dword [esp + 0x1c], esi
test edi, 0x2000000
je 0x538104
mov edi, dword [esp + 0xa8]
cmp edi, ebp
jae 0x538093
nop dword [eax + eax]
cmp esi, dword [esp + 0x8c]
jae 0x53a8f1
movzx ecx, word [edi]
mov edx, edi
lea edi, [edx + 2]
test eax, eax
je 0x538003
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x538003
movzx eax, word [edi]
and ecx, 0x3ff
shl ecx, 0xa
and eax, 0x3ff
or ecx, eax
add ecx, 0x10000
add edi, 2
cmp dword [esp + 0x74], 0
je 0x538077
cmp dword [esp + 0x18], 0
mov ebx, esi
je 0x538043
mov ebp, dword [esp + 0xb4]
mov eax, edx
sub eax, dword [ebp + 0x1c]
mov ebp, dword [esp + 0x18]
sar eax, 1
sub eax, dword [ebp + 4]
mov dword [ebp + 8], eax
lea eax, [esi - 0x10]
cmp ebp, eax
mov ebp, dword [esp + 0x10]
jne 0x538043
mov eax, dword [esp + 0x18]
cmp dword [eax + 0xc], 0xff
je 0x53805e
mov dword [esp + 0x18], esi
lea ebx, [esi + 0x10]
mov dword [esi], 0x80060000
mov dword [esi + 8], 0
mov dword [esi + 0xc], 0xff
mov eax, dword [esp + 0xb4]
mov esi, ebx
sub edx, dword [eax + 0x1c]
mov eax, dword [esp + 0x18]
sar edx, 1
mov dword [esp + 0x18], eax
mov dword [eax + 4], edx
mov eax, dword [esp + 0x44]
mov dword [esi], ecx
add esi, 4
cmp edi, ebp
jb 0x537fc0
mov ebx, dword [esp + 0x18]
mov edx, dword [esp + 0xb4]
mov ecx, esi
test ebx, ebx
je 0x5380a6
mov eax, edi
sub eax, dword [edx + 0x1c]
sar eax, 1
sub eax, dword [ebx + 4]
mov dword [ebx + 8], eax
cmp dword [esp + 0x74], 0
je 0x5380e4
test ebx, ebx
je 0x5380c1
lea eax, [esi - 0x10]
cmp ebx, eax
jne 0x5380c1
cmp dword [ebx + 0xc], 0xff
je 0x5380da
mov ebx, esi
mov dword [esi], 0x80060000
lea ecx, [esi + 0x10]
mov dword [esi + 8], 0
mov dword [esi + 0xc], 0xff
mov eax, edi
sub eax, dword [edx + 0x1c]
sar eax, 1
mov dword [ebx + 4], eax
cmp dword [esp + 0x88], 0
je 0x53a8d1
mov dword [ecx], 0x80190000
mov dword [ecx + 4], 0x80160000
jmp 0x53a8e5
mov ebp, edx
mov dword [esp + 0x30], 0xc
xor eax, eax
xor edx, edx
mov dword [esp + 0x38], eax
mov ecx, dword [ebp + 0x28]
add ecx, ecx
mov eax, ecx
div dword [esp + 0x30]
mov eax, dword [ebp + 0x14]
sub eax, edx
mov edx, edi
add eax, ecx
or edx, 0x80
mov ecx, dword [esp + 0x10]
mov dword [esp + 0x84], eax
mov eax, edi
and eax, 0x1000000
cmove edx, edi
mov edi, dword [esp + 0xa8]
mov dword [esp + 0x2c], edx
xor edx, edx
jmp 0x538170
mov ecx, dword [esp + 0x10]
jmp 0x538170
mov ecx, dword [esp + 0x10]
mov ebp, dword [esp + 0xb4]
mov edx, dword [esp + 0x14]
mov ebx, dword [esp + 0x18]
nop dword [eax]
movzx eax, dx
mov dword [esp + 0xa0], eax
cmp edi, ecx
jae 0x53a8bf
mov dword [esp + 0x60], 0
mov dword [esp + 0x30], 0
cmp esi, dword [esp + 0x8c]
jae 0x53a8f1
mov ecx, dword [ebp]
movzx eax, dx
cmp eax, dword [ecx + 0x20]
ja 0x53a8b8
cmp dword [esp + 0x44], 0
mov edx, edi
movzx ebx, word [edi]
mov dword [esp + 0x24], edx
mov ebp, ebx
mov dword [esp + 0x4c], ebx
lea edi, [edx + 2]
mov eax, edi
mov dword [esp + 0xa8], edi
mov dword [esp + 0x40], eax
je 0x53821b
mov eax, ebx
mov dword [esp + 0x40], edi
and eax, 0xfc00
cmp eax, 0xd800
jne 0x538217
movzx eax, word [edi]
and ebx, 0x3ff
and eax, 0x3ff
shl ebx, 0xa
or ebx, eax
add ebx, 0x10000
add edi, 2
mov eax, edi
mov dword [esp + 0x4c], ebx
mov dword [esp + 0xa8], edi
mov ebp, ebx
mov dword [esp + 0x40], eax
jmp 0x53821b
mov eax, dword [esp + 0x40]
cmp dword [esp + 0x54], 0
je 0x5382bf
cmp ebp, 0x5c
jne 0x538249
mov ecx, dword [esp + 0x10]
cmp eax, ecx
jae 0x538249
cmp word [edi], 0x45
jne 0x538249
mov dword [esp + 0x54], 0
lea edi, [eax + 2]
jmp 0x53815e
cmp dword [esp + 0x6c], 0
jg case.0x53871d.34
cmp dword [esp + 0x70], 0
jne 0x538296
mov ecx, dword [esp + 0x68]
mov eax, ecx
dec ecx
mov dword [esp + 0x68], ecx
test eax, eax
jg 0x53828e
push dword [esp + 0xb4]
lea eax, [esp + 0x68]
push esi
push dword [esp + 0x7c]
push eax
push edx
call fcn.00537e50
mov esi, eax
add esp, 0x14
mov eax, dword [esp + 0x64]
mov dword [esp + 0x18], eax
mov dword [esp + 0x20], 1
mov dword [esp + 0x58], 0
mov ecx, dword [esp + 0x10]
mov ebp, dword [esp + 0xb4]
mov edx, dword [esp + 0x14]
mov dword [esi], ebx
add esi, 4
mov ebx, dword [esp + 0x18]
mov dword [esp + 0x1c], esi
jmp 0x538170
cmp dword [esp + 0x70], 0
je 0x538436
mov eax, dword [esp + 0x2c]
and eax, 0x400080
cmp eax, 0x400080
jne 0x53832a
cmp ebp, 0xff
jbe 0x5382f5
mov eax, ebp
or eax, 1
cmp eax, 0x200f
je 0x5382f5
cmp eax, 0x2029
jne 0x53829e
cmp ebp, 0x100
jae 0x538436
cmp ebp, 0x23
je 0x538466
mov eax, dword [esp + 0xb4]
mov eax, dword [eax + 0x10]
test byte [ebx + eax], 1
jne 0x538436
cmp ebp, 0x85
je 0x538466
cmp ebp, 0x29
je 0x5383cb
cmp ebp, 0x5c
jne 0x53829e
mov edx, dword [esp + 0x2c]
mov ebp, dword [esp + 0xb4]
test edx, 0x400000
je 0x5383b9
push ebp
push 0
push dword [ecx + 0x24]
lea eax, [esp + 0x34]
push edx
push eax
lea eax, [esp + 0x60]
push eax
push dword [esp + 0x28]
lea eax, [esp + 0xc4]
push eax
call fcn.00531c90
mov ecx, dword [esp + 0x48]
add esp, 0x20
test ecx, ecx
jne 0x53a719
sub eax, ecx
je 0x5383ae
sub eax, 0x19
je case.default.0x538ac7
mov edi, dword [esp + 0xa8]
sub eax, 1
jne 0x53a6b9
mov ecx, dword [esp + 0x10]
mov dword [esp + 0x54], 1
jmp 0x538165
mov edi, dword [esp + 0xa8]
mov ebx, dword [esp + 0x4c]
mov ecx, dword [esp + 0x10]
mov dword [esi], ebx
add esi, 4
mov dword [esp + 0x1c], esi
jmp 0x538165
mov ebp, dword [esp + 0xb4]
mov eax, edi
sub eax, dword [esp + 0x94]
sar eax, 1
dec eax
mov dword [esp + 0x70], 0
cmp eax, 0xffff
jg 0x53a6c3
mov ecx, dword [esp + 0x90]
mov eax, esi
mov ebx, dword [esp + 0x18]
sub eax, ecx
mov edx, dword [esp + 0x14]
sar eax, 2
dec eax
mov dword [ecx], eax
mov eax, dword [esp + 0x80]
mov ecx, dword [esp + 0x10]
test eax, eax
je 0x538170
mov dword [esi], eax
add esi, 4
mov dword [esp + 0x1c], esi
mov dword [esp + 0x80], 0
jmp 0x538165
cmp ebp, 0x5c
jne 0x538466
mov ecx, dword [esp + 0x40]
cmp ecx, dword [esp + 0x10]
jae 0x538466
movzx eax, word [edi]
cmp eax, 0x51
je 0x538452
cmp eax, 0x45
jne 0x538466
xor edx, edx
lea edi, [ecx + 2]
cmp eax, 0x51
sete dl
mov dword [esp + 0x54], edx
jmp 0x53815a
test byte [esp + 0x2c], 0x80
je 0x53858d
cmp ebp, 0x100
jae 0x53848d
mov eax, dword [esp + 0xb4]
mov eax, dword [eax + 0x10]
test byte [ebx + eax], 1
jne 0x53815a
cmp ebp, 0x85
je 0x53815a
mov eax, ebp
or eax, 1
cmp eax, 0x200f
je 0x53815a
cmp eax, 0x2029
je 0x53815a
cmp ebp, 0x23
jne 0x53858d
mov ecx, dword [esp + 0x10]
mov ebp, dword [esp + 0xb4]
mov ebx, dword [esp + 0x18]
mov edx, dword [esp + 0x14]
cmp edi, ecx
jae 0x538170
nop dword [eax + eax]
mov eax, dword [ebp + 0x90]
mov ecx, dword [ebp + 0x20]
test eax, eax
je 0x538519
cmp edi, ecx
jae 0x538546
push dword [esp + 0x44]
lea ebx, [ebp + 0x94]
push ebx
push ecx
push eax
push edi
call fcn.0053cb00
add esp, 0x14
test eax, eax
je 0x538546
mov edx, dword [ebx]
mov ecx, dword [esp + 0x10]
lea edi, [edi + edx*2]
jmp 0x538165
mov edx, dword [ebp + 0x94]
lea eax, [edx + edx]
sub ecx, eax
cmp edi, ecx
ja 0x538546
mov ax, word [edi]
cmp ax, word [ebp + 0xa0]
jne 0x538546
cmp edx, 1
je 0x53850d
mov ax, word [edi + 2]
cmp ax, word [ebp + 0xa2]
je 0x53850d
mov ecx, dword [esp + 0x10]
add edi, 2
cmp dword [esp + 0x44], 0
mov eax, edi
je 0x538578
cmp edi, ecx
jae 0x538578
mov ax, word [edi]
mov edx, 0xfc00
and ax, dx
mov edx, 0xdc00
cmp ax, dx
jne 0x5384e0
add edi, 2
mov eax, edi
mov ebx, dword [esp + 0x18]
mov edx, dword [esp + 0x14]
cmp eax, ecx
jb 0x5384e0
jmp 0x538170
cmp ebp, 0x28
jne 0x5385d1
mov ecx, dword [esp + 0x10]
mov eax, ecx
sub eax, edi
and eax, 0xfffffffe
cmp eax, 4
jl 0x53860b
cmp word [edi], 0x3f
jne 0x53860b
cmp word [edi + 2], 0x23
jne 0x53860b
nop
add edi, 2
cmp edi, ecx
jae 0x53a6d4
cmp word [edi], 0x29
jne 0x5385b0
cmp edi, ecx
jae 0x53a6d4
add edi, 2
jmp 0x53815e
cmp ebp, 0x2a
je 0x538642
cmp ebp, 0x2b
je 0x538642
cmp ebp, 0x3f
je 0x538642
cmp ebp, 0x7b
jne 0x53860b
lea eax, [esp + 0x28]
mov dword [esp + 0x5c], edi
push eax
push 0
push 0
push dword [esp + 0x1c]
lea eax, [esp + 0x6c]
push eax
call fcn.0053c1f0
add esp, 0x14
test eax, eax
jne 0x538642
mov edx, dword [esp + 0x24]
mov ecx, dword [esp + 0x68]
mov eax, ecx
dec ecx
mov dword [esp + 0x68], ecx
test eax, eax
jg 0x538642
push dword [esp + 0xb4]
lea eax, [esp + 0x68]
push esi
push dword [esp + 0x7c]
push eax
push edx
call fcn.00537e50
mov esi, eax
add esp, 0x14
mov eax, dword [esp + 0x64]
mov dword [esp + 0x1c], esi
mov dword [esp + 0x18], eax
mov edx, dword [esp + 0x6c]
test edx, edx
jle 0x5386a4
cmp ebp, 0x28
jne case.0x53871d.34
mov ecx, dword [esp + 0x10]
mov eax, ecx
sub eax, edi
and eax, 0xfffffffe
cmp eax, 6
jl case.0x53871d.34
movzx eax, word [edi]
cmp eax, 0x3f
je 0x53870a
cmp eax, 0x2a
jne case.0x53871d.34
movzx eax, word [edi + 2]
mov ecx, 0xff
mov ebp, dword [esp + 0xb4]
cmp ax, cx
ja 0x538741
mov ecx, eax
mov eax, dword [ebp + 0x10]
test byte [ecx + eax], 4
je 0x538741
mov ecx, dword [esp + 0x10]
mov ebp, dword [esp + 0x20]
mov dword [esp + 0x24], edx
xor edx, edx
mov dword [esp + 0x6c], edx
mov edx, dword [esp + 0x58]
mov eax, edx
mov dword [esp + 0x20], 0
mov dword [esp + 0x58], 0
test eax, eax
je 0x53875c
cmp ebx, 0x3f
je 0x5386de
cmp ebx, 0x2b
jne 0x53875c
cmp ebx, 0x3f
mov ecx, 0x10000
mov ebx, 0x20000
cmove ecx, ebx
add ecx, eax
xor eax, eax
cmp edx, 0x803d0000
setne al
lea eax, [eax*8 - 0xc]
mov dword [eax + esi], ecx
jmp 0x53815a
movzx eax, word [edi + 2]
add eax, 0xffffffdf
cmp eax, 0x22
ja case.0x53871d.34
movzx eax, byte [eax + 0x53a944]
jmp dword [eax*4 + 0x53a934]
movzx eax, word [edi + 4]
cmp eax, 0x3d
je case.0x53871d.33
cmp eax, 0x21
je case.0x53871d.33
mov ebp, dword [esp + 0xb4]
mov edi, dword [esp + 0x40]
mov ecx, 0x80
add edi, 0xfffffffe
jmp 0x53a91f
cmp edx, 2
jne case.0x53871d.34
jmp case.0x53871d.33
lea eax, [ebx - 0x24]
cmp eax, 0x58
ja case.0x53876f.37
movzx eax, byte [eax + 0x53a99c]
jmp dword [eax*4 + 0x53a968]
mov ebp, dword [esp + 0xb4]
push ebp
push 0
mov dword [esp + 0x64], edi
mov eax, dword [ebp]
push dword [eax + 0x24]
lea eax, [esp + 0x34]
push dword [esp + 0x38]
push eax
lea eax, [esp + 0x60]
push eax
push ecx
lea eax, [esp + 0xc4]
push eax
call fcn.00531c90
mov ecx, dword [esp + 0x48]
add esp, 0x20
mov ebx, eax
test ecx, ecx
jne 0x5387ea
test ebx, ebx
je 0x538b31
js 0x538aef
lea eax, [ebx - 6]
cmp eax, 0x16
ja case.0x5387d0.13
movzx eax, byte [eax + 0x53aa10]
jmp dword [eax*4 + 0x53a9f8]
test dword [esp + 0x2c], 0x100000
je case.0x5387d0.12
mov ecx, 0xb7
mov dword [esp + 0x28], ecx
mov edi, dword [esp + 0xa8]
mov edx, dword [esp + 0x10]
test byte [esp + 0x78], 2
je 0x53a918
mov eax, dword [esp + 0x5c]
mov edi, eax
cmp eax, edx
jb 0x538b41
mov ecx, 0x5c
mov ebp, dword [esp + 0xb4]
mov dword [esi], ecx
add esi, 4
mov dword [esp + 0x1c], esi
mov ecx, dword [esp + 0x10]
mov ebx, dword [esp + 0x18]
mov edx, dword [esp + 0x14]
mov dword [esp + 0x20], 1
jmp 0x538170
mov dword [esp + 0x20], 1
lea eax, [ebx - 0x7fe80000]
mov dword [esi], eax
mov edi, dword [esp + 0xa8]
add esi, 4
mov ecx, dword [esp + 0x10]
mov ebx, dword [esp + 0x18]
mov edx, dword [esp + 0x14]
mov dword [esp + 0x1c], esi
jmp 0x538170
push ebp
lea eax, [esp + 0x2c]
mov dword [esp + 0x28], 0
push eax
lea eax, [esp + 0x48]
mov dword [esp + 0x48], 0
push eax
lea eax, [esp + 0x30]
push eax
lea eax, [esp + 0xa8]
push eax
lea eax, [esp + 0xbc]
push eax
call fcn.005376e0
add esp, 0x18
test eax, eax
je 0x538a61
cmp dword [esp + 0x98], 0
je 0x5388c0
xor eax, eax
cmp ebx, 0xf
sete al
lea ebx, [eax + 0xf]
movzx ecx, word [esp + 0x24]
lea eax, [ebx - 0x7fe80000]
mov dword [esi], eax
movzx eax, word [esp + 0x40]
shl ecx, 0x10
or ecx, eax
mov dword [esi + 4], ecx
add esi, 8
mov dword [esp + 0x1c], esi
mov dword [esp + 0x20], 1
nop dword [eax]
mov edi, dword [esp + 0xa8]
mov ecx, dword [esp + 0x10]
mov ebx, dword [esp + 0x18]
mov edx, dword [esp + 0x14]
jmp 0x538170
mov edi, dword [esp + 0xa8]
mov edx, dword [esp + 0x10]
cmp edi, edx
jae 0x538a6a
movzx eax, word [edi]
cmp eax, 0x7b
je 0x538935
cmp eax, 0x3c
je 0x5389b5
cmp eax, 0x27
jne 0x538a6a
cmp eax, 0x27
mov ebp, 0x7d
mov eax, 0x27
cmove ebp, eax
cmp ebx, 0x1b
jne 0x5389da
cmp ebp, 0x7d
je 0x5389da
lea eax, [edi + 2]
mov dword [esp + 0x24], eax
lea eax, [esp + 0x28]
push eax
lea eax, [esp + 0x40]
push eax
mov eax, dword [esp + 0xbc]
push 0xa1
push 0xffff
push dword [eax + 0x74]
lea eax, [esp + 0x38]
push edx
push eax
call fcn.0053c0b0
add esp, 0x1c
test eax, eax
je 0x5389ca
mov ecx, dword [esp + 0x24]
mov edx, dword [esp + 0x10]
cmp ecx, edx
jae 0x5389bc
movzx eax, word [ecx]
cmp eax, ebp
jne 0x5389bc
mov eax, dword [esp + 0x3c]
mov edi, ecx
mov ebp, dword [esp + 0xb4]
mov ecx, edx
jmp 0x53a327
mov ebp, 0x3e
jmp 0x538945
mov ecx, 0x9d
mov dword [esp + 0x28], ecx
jmp 0x5387f5
mov ecx, dword [esp + 0x28]
test ecx, ecx
jne 0x5387f1
mov edx, dword [esp + 0x10]
push dword [esp + 0xb4]
lea eax, [esp + 0x2c]
push eax
lea eax, [esp + 0x3c]
push eax
lea eax, [esp + 0x5c]
push eax
lea eax, [esp + 0x58]
push eax
push ebp
push dword [esp + 0x5c]
lea eax, [esp + 0xc4]
push edx
push eax
call fcn.0053be60
add esp, 0x24
test eax, eax
je 0x538a61
cmp ebx, 0x1c
je 0x538a1e
mov eax, 0x80210000
cmp ebp, 0x7d
jne 0x538a23
mov eax, 0x80040000
mov edi, dword [esp + 0xa8]
mov ecx, dword [esp + 0x10]
mov ebp, dword [esp + 0xb4]
mov ebx, dword [esp + 0x18]
mov edx, dword [esp + 0x14]
mov dword [esi], eax
mov eax, dword [esp + 0x34]
mov dword [esi + 4], eax
mov eax, dword [esp + 0x48]
mov dword [esi + 8], eax
add esi, 0xc
mov dword [esp + 0x20], 1
mov dword [esp + 0x1c], esi
jmp 0x538170
mov ecx, dword [esp + 0x28]
jmp 0x5387ea
cmp ebx, 0x1b
mov ecx, 0xa9
mov eax, 0x9d
cmove ecx, eax
mov dword [esp + 0x28], ecx
jmp 0x5387f5
test dword [esp + 0x2c], 0x20000
mov dword [esp + 0x20], 1
je case.0x5387d0.13
cmp ebx, 7
je 0x538aad
cmp ebx, 9
je 0x538aad
mov eax, 0x8018000f
cmp ebx, 0xb
jne 0x538ab2
mov eax, 0x80180010
mov dword [esi], eax
add ebx, 0xfffffffa
add esi, 4
mov dword [esp + 0x1c], esi
cmp ebx, 5
ja case.default.0x538ac7
jmp dword [ebx*4 + 0x53aa28]
mov dword [esi], 0x3000d
jmp 0x53884c
mov dword [esi], 0x70000
jmp 0x53884c
mov dword [esi], 0x90000
jmp 0x53884c
mov edi, dword [esp + 0xa8]
neg ebx
mov ecx, edi
mov eax, ebx
sub ecx, dword [ebp + 0x1c]
or eax, 0x80030000
sar ecx, 1
dec ecx
mov dword [esi], eax
add esi, 4
mov dword [esp + 0x48], ecx
mov dword [esp + 0x1c], esi
cmp ebx, 0xa
jge 0x53881a
cmp dword [ebp + ebx*4 + 0x2c], 0xffffffff
jne 0x538823
mov dword [ebp + ebx*4 + 0x2c], ecx
jmp 0x538823
mov edi, dword [esp + 0xa8]
mov ecx, dword [esp + 0x4c]
jmp 0x53881a
cmp dword [esp + 0x44], 0
lea edi, [eax + 2]
movzx ecx, word [eax]
je 0x538813
mov ebp, dword [esp + 0xb4]
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x53881a
movzx eax, word [edi]
and ecx, 0x3ff
shl ecx, 0xa
and eax, 0x3ff
or ecx, eax
add ecx, 0x10000
add edi, 2
jmp 0x53881a
mov ebp, dword [esp + 0xb4]
mov ebx, dword [esp + 0x18]
mov edx, dword [esp + 0x14]
mov dword [esi], 0x80090000
add esi, 4
mov dword [esp + 0x1c], esi
jmp 0x538170
mov ebp, dword [esp + 0xb4]
mov ebx, dword [esp + 0x18]
mov edx, dword [esp + 0x14]
mov dword [esi], 0x80160000
add esi, 4
mov dword [esp + 0x1c], esi
jmp 0x538170
mov ebp, dword [esp + 0xb4]
mov ebx, dword [esp + 0x18]
mov edx, dword [esp + 0x14]
mov dword [esi], 0x80170000
add esi, 4
mov dword [esp + 0x20], 1
mov dword [esp + 0x1c], esi
jmp 0x538170
mov dword [esp + 0x58], 0x80340000
jmp 0x538c68
mov dword [esp + 0x58], 0x80370000
jmp 0x538c68
mov dword [esp + 0x58], 0x803a0000
jmp 0x538c68
lea eax, [esp + 0x28]
push eax
lea eax, [esp + 0x34]
push eax
lea eax, [esp + 0x68]
push eax
push ecx
lea eax, [esp + 0xb8]
push eax
call fcn.0053c1f0
add esp, 0x14
test eax, eax
jne 0x538c59
mov ecx, dword [esp + 0x28]
test ecx, ecx
jne 0x53a712
mov edi, dword [esp + 0xa8]
mov dword [esp + 0x20], 1
jmp 0x53829e
mov edi, dword [esp + 0xa8]
mov dword [esp + 0x58], 0x803d0000
test ebp, ebp
je 0x53a6de
cmp dword [esi - 4], 0x802a0000
lea ecx, [esi - 4]
jne 0x538ca0
mov edx, dword [esp + 0x7c]
cmp ecx, edx
jb 0x538c90
mov eax, dword [ecx]
mov dword [ecx + 4], eax
sub ecx, 4
cmp ecx, edx
jae 0x538c84
mov dword [edx], 0x801a0000
mov dword [esi + 4], 0x80190000
add esi, 8
mov eax, dword [esp + 0x58]
mov ecx, dword [esp + 0x10]
mov ebp, dword [esp + 0xb4]
mov edx, dword [esp + 0x14]
mov dword [esi], eax
add esi, 4
cmp ebx, 0x7b
mov dword [esp + 0x1c], esi
mov ebx, dword [esp + 0x18]
jne 0x538170
mov eax, dword [esp + 0x60]
mov dword [esi], eax
mov eax, dword [esp + 0x30]
mov dword [esi + 4], eax
add esi, 8
mov dword [esp + 0x1c], esi
jmp 0x538170
mov eax, ecx
mov dword [esp + 0x20], 1
sub eax, edi
and eax, 0xfffffffe
cmp eax, 0xc
jl 0x538dd2
push 6
push 0x5ae3f0
push edi
call fcn.0053c520
add esp, 0xc
test eax, eax
je 0x538d26
push 6
push str._:_:__
push edi
call fcn.0053c520
add esp, 0xc
test eax, eax
jne 0x538dce
mov dword [esi], 0x80180005
lea eax, [esi + 8]
cmp word [edi + 4], 0x3c
jne 0x538d3f
mov dword [esi + 4], 0x80230000
jmp 0x538d5c
mov ecx, dword [esp + 0xb0]
mov dword [esi + 4], 0x80250000
mov dword [ecx], 1
mov dword [eax], 0
add eax, 4
test dword [esp + 0x2c], 0x20000
lea esi, [eax + 4]
jne 0x538d97
mov ecx, dword [esp + 0x10]
mov ebp, dword [esp + 0xb4]
mov ebx, dword [esp + 0x18]
mov edx, dword [esp + 0x14]
mov dword [eax], 0x8018000b
mov dword [esi], 0x80190000
add esi, 4
add edi, 0xc
mov dword [esp + 0x1c], esi
jmp 0x538170
mov ecx, dword [esp + 0x10]
mov ebp, dword [esp + 0xb4]
mov ebx, dword [esp + 0x18]
mov edx, dword [esp + 0x14]
mov dword [eax], 0x80180010
mov dword [esi], 0x90000
add esi, 4
mov dword [esi], 0x80190000
add esi, 4
add edi, 0xc
mov dword [esp + 0x1c], esi
jmp 0x538170
mov ecx, dword [esp + 0x10]
cmp edi, ecx
jae 0x538e03
movzx eax, word [edi]
cmp eax, 0x3a
je 0x538de8
cmp eax, 0x2e
je 0x538de8
cmp eax, 0x3d
jne 0x538e03
lea eax, [esp + 0x5c]
push eax
push ecx
push edi
call fcn.00532e40
add esp, 0xc
test eax, eax
jne 0x53a6eb
mov ecx, dword [esp + 0x10]
xor edx, edx
mov dword [esp + 0x24], edx
cmp edi, ecx
jae 0x538f06
mov esi, dword [esp + 0x44]
movzx ebx, word [edi]
add edi, 2
mov dword [esp + 0x4c], ebx
mov ecx, ebx
mov dword [esp + 0xa8], edi
mov ebp, edi
test esi, esi
je 0x538e67
mov eax, ebx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x538e67
movzx eax, word [edi]
and ebx, 0x3ff
shl ebx, 0xa
and eax, 0x3ff
or ebx, eax
add ebx, 0x10000
add edi, 2
mov dword [esp + 0x4c], ebx
mov ecx, ebx
mov dword [esp + 0xa8], edi
mov ebp, edi
cmp ecx, 0x5c
jne 0x538ec4
mov ecx, dword [esp + 0x10]
cmp ebp, ecx
jae 0x538e8b
cmp word [edi], 0x45
jne 0x538e8b
mov eax, 2
lea edi, [eax + ebp]
mov dword [esp + 0xa8], edi
jmp 0x538ef4
mov eax, ecx
sub eax, ebp
and eax, 0xfffffffe
cmp eax, 6
jl 0x538f02
push 3
push 0x5ae400
push edi
call fcn.0053c520
mov edx, dword [esp + 0x30]
add esp, 0xc
mov ecx, dword [esp + 0x10]
test eax, eax
jne 0x538f02
mov eax, 6
lea edi, [eax + ebp]
mov dword [esp + 0xa8], edi
jmp 0x538ef4
test dword [esp + 0x2c], 0x1000000
je 0x538ed8
cmp ecx, 0x20
je 0x538ef0
cmp ecx, 9
je 0x538ef0
test edx, edx
jne 0x538efe
cmp ecx, 0x5e
mov ecx, dword [esp + 0x10]
jne 0x538f02
mov edx, 1
mov dword [esp + 0x24], edx
jmp 0x538ef4
mov ecx, dword [esp + 0x10]
cmp edi, ecx
jb 0x538e15
jmp 0x538f02
mov ecx, dword [esp + 0x10]
mov esi, dword [esp + 0x1c]
cmp ebx, 0x5d
jne 0x538f3d
mov ebp, dword [esp + 0xb4]
test byte [ebp + 0x6c], 1
je 0x538f3d
mov ebx, dword [esp + 0x18]
test edx, edx
mov edx, 0x800c0000
mov eax, 0x800b0000
cmovne eax, edx
mov edx, dword [esp + 0x14]
mov dword [esi], eax
add esi, 4
mov dword [esp + 0x1c], esi
jmp 0x538170
test edx, edx
mov eax, 0x800a0000
mov edx, 0x800e0000
cmovne eax, edx
mov dword [esi], eax
add esi, 4
mov eax, dword [esp + 0x54]
xor edx, edx
mov dword [esp + 0x20], edx
nop dword [eax + eax]
mov ebp, 1
test eax, eax
je 0x538f94
cmp ebx, 0x5c
jne 0x539208
cmp edi, ecx
jae 0x539208
cmp word [edi], 0x45
jne 0x539208
mov dword [esp + 0x54], 0
add edi, 2
jmp 0x5393bd
test dword [esp + 0x2c], 0x1000000
je 0x538fb0
cmp ebx, 0x20
je 0x5393bd
cmp ebx, 9
je 0x5393bd
cmp ebx, 0x5b
jne 0x539122
mov eax, ecx
sub eax, edi
and eax, 0xfffffffe
cmp eax, 6
jl 0x539208
movzx eax, word [edi]
cmp eax, 0x3a
je 0x538fdf
cmp eax, 0x2e
je 0x538fdf
cmp eax, 0x3d
jne 0x539208
lea eax, [esp + 0x5c]
push eax
push ecx
push edi
call fcn.00532e40
add esp, 0xc
test eax, eax
je 0x539204
mov dword [esp + 0x24], 0
cmp dword [esp + 0x20], ebp
je 0x53a75b
cmp word [edi], 0x3a
jne 0x53a705
add edi, 2
mov edx, edi
cmp word [edi], 0x5e
jne 0x539026
add edi, 2
mov dword [esp + 0x24], ebp
mov edx, edi
mov ebp, dword [esp + 0x5c]
mov ecx, 0x5ae130
sub ebp, edx
mov dword [esp + 0x30], ecx
sar ebp, 1
xor ebx, ebx
nop dword [eax]
movzx eax, byte [ebx + 0x5ae184]
cmp ebp, eax
jne 0x539060
push ebp
push ecx
push edx
call fcn.0053c520
add esp, 0xc
test eax, eax
je 0x539082
mov ecx, dword [esp + 0x30]
mov edx, edi
movzx eax, byte [ebx + 0x5ae184]
inc ecx
inc ebx
add ecx, eax
mov dword [esp + 0x30], ecx
cmp byte [ebx + 0x5ae184], 0
jne 0x539040
mov ecx, 0x82
jmp 0x53a918
test ebx, ebx
js 0x539078
mov edi, dword [esp + 0x5c]
mov eax, dword [esp + 0x10]
add edi, 4
add eax, 0xfffffffe
cmp edi, eax
jae 0x5390a9
cmp word [edi], 0x2d
jne 0x5390a9
cmp word [edi + 2], 0x5d
jne 0x53a75b
xor edx, edx
test dword [esp + 0x2c], 0x20000
mov dword [esp + 0x20], edx
je 0x539109
mov eax, dword [ebx*8 + 0x612050]
mov edx, dword [ebx*8 + 0x612054]
test eax, eax
js 0x5390ee
mov ecx, dword [esp + 0x24]
xor ecx, 1
shl eax, 0x10
sub ecx, 0x7fe7fff1
or eax, edx
mov edx, dword [esp + 0x20]
mov dword [esi], ecx
mov dword [esi + 4], eax
add esi, 8
jmp 0x5393bd
test edx, edx
mov edx, dword [esp + 0x20]
je 0x539109
mov eax, dword [esp + 0x24]
xor eax, 1
sub eax, 0x7fe7ffee
mov dword [esi], eax
jmp 0x5393ba
mov eax, dword [esp + 0x24]
add eax, 0x801c
shl eax, 0x10
mov dword [esi], eax
mov dword [esi + 4], ebx
add esi, 8
jmp 0x5393bd
cmp ebx, 0x2d
jne 0x539149
cmp edx, 2
jb 0x539208
cmp edx, 3
mov eax, 0x801e0000
mov ecx, 0x801f0000
mov edx, ebp
cmove eax, ecx
mov dword [esi], eax
jmp 0x5393b6
cmp ebx, 0x5c
jne 0x539208
mov ebp, dword [esp + 0xb4]
push ebp
push 1
mov dword [esp + 0x64], edi
mov eax, dword [ebp]
push dword [eax + 0x24]
lea eax, [esp + 0x34]
push dword [esp + 0x38]
push eax
lea eax, [esp + 0x60]
push eax
push ecx
lea eax, [esp + 0xc4]
push eax
call fcn.00531c90
mov ecx, dword [esp + 0x48]
add esp, 0x20
mov ebx, eax
test ecx, ecx
je 0x5391e2
test byte [esp + 0x78], 2
je 0x53a719
cmp edi, dword [esp + 0x10]
jb 0x5391a7
mov ebx, 0x5c
jmp 0x539202
cmp dword [esp + 0x44], 0
lea ecx, [edi + 2]
movzx ebx, word [edi]
mov edi, ecx
je 0x539202
mov eax, ebx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x539202
movzx eax, word [edi]
and ebx, 0x3ff
shl ebx, 0xa
lea edi, [ecx + 2]
and eax, 0x3ff
or ebx, eax
add ebx, 0x10000
jmp 0x539202
cmp ebx, 0x1a
ja case.0x5391f0.1
mov ebx, eax
movzx eax, byte [eax + 0x53aa58]
jmp dword [eax*4 + 0x53aa40]
mov edi, dword [esp + 0xa8]
mov ebx, dword [esp + 0x4c]
xor ebp, ebp
mov edx, dword [esp + 0x20]
cmp edx, 1
jne 0x5393b1
cmp ebx, dword [esi - 8]
jne 0x53938a
sub esi, 4
xor edx, edx
mov dword [esp + 0x20], edx
jmp 0x5393bd
mov edi, dword [esp + 0xa8]
mov ebx, 8
xor ebp, ebp
jmp 0x539204
mov dword [esp + 0x54], 1
mov edi, dword [esp + 0xa8]
mov edx, dword [esp + 0x20]
jmp 0x5393c4
cmp dword [esp + 0x20], 1
je 0x53a74a
xor edx, edx
lea ecx, [ebx - 6]
mov dword [esp + 0x20], edx
cmp ecx, 0xf
ja case.0x539274.13
movzx eax, byte [ecx + 0x53aa88]
jmp dword [eax*4 + 0x53aa74]
lea eax, [ebx - 0x7fe80000]
mov dword [esi], eax
add esi, 4
jmp case.default.0x5392cc
test dword [esp + 0x2c], 0x20000
jne 0x5392a5
lea eax, [ebx - 0x7fe80000]
mov dword [esi], eax
add esi, 4
jmp case.default.0x5392cc
cmp ebx, 7
je 0x5392b9
cmp ebx, 9
je 0x5392b9
mov eax, 0x8018000f
cmp ebx, 0xb
jne 0x5392be
mov eax, 0x80180010
mov dword [esi], eax
add esi, 4
cmp ecx, 5
ja case.default.0x5392cc
jmp dword [ecx*4 + 0x53aa98]
mov dword [esi], 0x3000d
add esi, 4
jmp case.default.0x5392cc
mov dword [esi], 0x70000
add esi, 4
jmp case.default.0x5392cc
mov dword [esi], 0x90000
add esi, 4
jmp case.default.0x5392cc
push ebp
lea eax, [esp + 0x2c]
mov dword [esp + 0x34], edx
push eax
lea eax, [esp + 0x68]
mov dword [esp + 0x68], edx
push eax
lea eax, [esp + 0x3c]
push eax
lea eax, [esp + 0xac]
push eax
lea eax, [esp + 0xbc]
push eax
call fcn.005376e0
add esp, 0x18
test eax, eax
je 0x53a87c
cmp dword [esp + 0x9c], 0
je 0x539344
xor eax, eax
cmp ebx, 0xf
sete al
lea ebx, [eax + 0xf]
movzx ecx, word [esp + 0x30]
lea eax, [ebx - 0x7fe80000]
mov edx, dword [esp + 0x20]
mov dword [esi], eax
movzx eax, word [esp + 0x60]
shl ecx, 0x10
or ecx, eax
mov dword [esi + 4], ecx
add esi, 8
mov eax, dword [esp + 0x10]
mov edi, dword [esp + 0xa8]
add eax, 0xfffffffe
cmp edi, eax
jae 0x5393c4
cmp word [edi], 0x2d
jne 0x5393c4
cmp word [edi + 2], 0x5d
jne 0x53a762
jmp 0x5393c4
jb 0x53a76c
test ebp, ebp
jne 0x5393a4
cmp dword [esi - 4], 0x801f0000
jne 0x5393a4
mov dword [esi - 4], 0x801e0000
mov dword [esi], ebx
add esi, 4
xor edx, edx
mov dword [esp + 0x20], edx
jmp 0x5393bd
lea edx, [ebp + 2]
mov dword [esi], ebx
mov dword [esp + 0x20], edx
add esi, 4
mov ebp, dword [esp + 0xb4]
cmp edi, dword [esp + 0x10]
jae 0x53a779
movzx ebx, word [edi]
add edi, 2
cmp dword [esp + 0x44], 0
mov ecx, ebx
mov dword [esp + 0x4c], ebx
mov dword [esp + 0xa8], edi
je 0x53941f
mov eax, ebx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x53941f
movzx eax, word [edi]
and ebx, 0x3ff
shl ebx, 0xa
and eax, 0x3ff
or ebx, eax
add ebx, 0x10000
add edi, 2
mov dword [esp + 0x4c], ebx
mov ecx, ebx
mov dword [esp + 0xa8], edi
mov eax, dword [esp + 0x54]
cmp ecx, 0x5d
mov ecx, dword [esp + 0x10]
jne 0x538f60
test eax, eax
jne 0x538f60
cmp edx, 1
jne 0x539444
mov dword [esi - 4], 0x2d
mov ebx, dword [esp + 0x18]
mov edx, dword [esp + 0x14]
mov dword [esi], 0x800d0000
add esi, 4
mov dword [esp + 0x20], 1
mov dword [esp + 0x1c], esi
jmp 0x538170
cmp edi, ecx
jae 0x53a913
movzx eax, word [edi]
cmp eax, 0x3f
je 0x539896
mov edx, dword [esp + 0x14]
mov ebp, dword [esp + 0xb4]
cmp eax, 0x2a
je 0x5394db
inc edx
test dword [esp + 0x2c], 0x2000
mov dword [esp + 0x14], edx
jne 0x5394c4
mov ecx, dword [ebp + 0x74]
cmp ecx, 0xffff
jae 0x53a85e
inc ecx
mov dword [ebp + 0x74], ecx
or ecx, 0x80080000
mov dword [esi], ecx
add esi, 4
mov ecx, dword [esp + 0x10]
mov dword [esp + 0x1c], esi
jmp 0x538169
mov ecx, 0x801a0000
mov dword [esi], ecx
add esi, 4
mov ecx, dword [esp + 0x10]
mov dword [esp + 0x1c], esi
jmp 0x538169
mov ebx, dword [esp + 0x18]
mov eax, ecx
sub eax, edi
and eax, 0xfffffffe
cmp eax, 2
jle 0x538170
movzx ecx, word [edi + 2]
mov edx, dword [esp + 0x14]
cmp ecx, 0x29
je 0x538154
cmp ecx, 0xff
ja 0x53970e
mov eax, dword [ebp + 0x10]
test byte [ecx + eax], 4
je 0x53970e
mov ebx, dword [esp + 0x10]
lea eax, [esp + 0x28]
push ebp
push eax
lea eax, [esp + 0x3c]
mov dword [esp + 0x38], 0x5adfd0
push eax
lea eax, [esp + 0x5c]
push eax
lea eax, [esp + 0x58]
push eax
push 0
push dword [esp + 0x5c]
lea eax, [esp + 0xc4]
push ebx
push eax
call fcn.0053be60
add esp, 0x24
test eax, eax
je 0x53a87c
mov edi, dword [esp + 0xa8]
mov dword [esp + 0x40], edi
cmp edi, ebx
jae 0x53a7ad
cmp word [edi], 0x3a
jne 0x53a7ad
mov esi, dword [esp + 0x30]
xor ebx, ebx
mov edi, dword [esp + 0x34]
xor ebp, ebp
mov dword [esp + 0x3c], ebx
cmp edi, dword [ebx*8 + 0x5ae0a8]
jne 0x5395a1
push edi
push esi
push dword [esp + 0x58]
call fcn.0053c520
add esp, 0xc
test eax, eax
je 0x5395b5
inc esi
add esi, dword [ebx*8 + 0x5ae0a8]
inc ebx
mov dword [esp + 0x3c], ebx
mov ebp, ebx
cmp ebx, 0x11
jl 0x539586
mov esi, dword [esp + 0x1c]
mov edi, dword [esp + 0x40]
cmp ebp, 0x11
jge 0x53a7a6
mov edx, dword [ebx*8 + 0x5ae0ac]
mov ebx, dword [esp + 0x24]
test ebx, ebx
jle 0x5395e6
lea eax, [edx + 0x7fdd0000]
cmp eax, 0x30000
ja 0x53a783
cmp edx, 0x80250000
ja 0x539657
je 0x539682
cmp edx, 0x80230000
ja 0x539641
je 0x539f4f
cmp edx, 0x80020000
je case.0x5398c0.62
cmp edx, 0x80220000
jne 0x53964d
mov ecx, dword [esp + 0x14]
add edi, 2
mov ebp, dword [esp + 0xb4]
mov dword [esi], edx
add esi, 4
movzx eax, cx
mov ecx, dword [esp + 0x10]
inc eax
movzx edx, ax
mov dword [esp + 0x1c], esi
mov dword [esp + 0x14], edx
jmp 0x538169
cmp edx, 0x80240000
je 0x539f81
mov ecx, 0xbd
jmp 0x53a918
cmp edx, 0x80280000
ja 0x53968a
je 0x539682
cmp edx, 0x80260000
je 0x539682
cmp edx, 0x80270000
jne 0x53964d
mov ebp, dword [esp + 0xb4]
add edi, 2
mov dword [esi], edx
jmp 0x53a007
sub edi, 2
jmp 0x539fda
cmp edx, 0x8fff0000
jne 0x53964d
mov eax, dword [esp + 0x14]
add edi, 2
mov edx, dword [esp + 0x38]
inc eax
mov dword [esi], 0x80220000
mov dword [esi + 4], 0x80020000
add esi, 8
mov dword [esp + 0x14], eax
mov dword [esp + 0x1c], esi
test edx, edx
jne 0x5396ca
mov ebp, dword [esp + 0xb4]
mov edx, dword [ebp + 0x14]
mov dword [esp + 0x38], edx
jmp 0x5396e5
add edx, 0xc
mov dword [esp + 0x38], edx
cmp edx, dword [esp + 0x84]
jae 0x53a8a4
mov ebp, dword [esp + 0xb4]
mov ecx, dword [esp + 0x10]
mov ebx, dword [esp + 0x18]
mov word [edx], ax
mov eax, 4
mov word [edx + 6], ax
mov eax, dword [esp + 0x2c]
and eax, 0x10424e8
mov dword [edx + 8], eax
mov edx, dword [esp + 0x14]
jmp 0x538170
mov ebx, dword [esp + 0x10]
lea eax, [esp + 0x28]
push ebp
push eax
lea eax, [esp + 0x3c]
mov dword [esp + 0x84], 0x5adf08
push eax
lea eax, [esp + 0x5c]
push eax
lea eax, [esp + 0x58]
push eax
push 0
push dword [esp + 0x5c]
lea eax, [esp + 0xc4]
push ebx
push eax
call fcn.0053be60
add esp, 0x24
test eax, eax
je 0x53a87c
mov edi, dword [esp + 0xa8]
mov dword [esp + 0x40], edi
cmp edi, ebx
jae 0x53a8ca
movzx eax, word [edi]
cmp eax, 0x3a
je 0x539775
cmp eax, 0x29
jne 0x53a8ca
mov edi, dword [esp + 0x7c]
xor ebx, ebx
mov dword [esp + 0x3c], ebx
xor esi, esi
mov ebp, 0x5adf38
mov eax, dword [esp + 0x34]
cmp eax, dword [ebp]
jne 0x5397a1
push eax
push edi
push dword [esp + 0x58]
call fcn.0053c520
add esp, 0xc
test eax, eax
je 0x5397b4
inc edi
inc ebx
add edi, dword [ebp]
mov esi, ebx
add ebp, 0xc
mov dword [esp + 0x3c], ebx
cmp ebx, 9
jl 0x539786
mov edi, dword [esp + 0x40]
cmp esi, 9
mov esi, dword [esp + 0x1c]
jge 0x53a8ca
cmp word [edi], 0x3a
jne 0x5397db
lea eax, [edi + 2]
cmp eax, dword [esp + 0x10]
jae 0x5397db
cmp word [eax], 0x29
cmove edi, eax
lea ecx, [ebx + ebx*2]
mov ebx, dword [ecx*4 + 0x5adf40]
test ebx, ebx
jle 0x5397f3
cmp word [edi], 0x3a
jne 0x53a7b7
mov ecx, dword [ecx*4 + 0x5adf3c]
lea edx, [esi + 4]
xor eax, eax
mov dword [esp + 0x7c], esi
cmp ecx, 0x802a0000
sete al
mov dword [esp + 0x20], eax
movzx eax, word [edi]
add edi, 2
cmp eax, 0x3a
jne 0x539876
test ebx, ebx
jns 0x53982d
mov dword [esp + 0x80], ecx
mov eax, 0x80290000
jmp 0x53983f
xor eax, eax
mov ebx, 0x10000
cmp ecx, 0x80290000
cmovne eax, ebx
add eax, ecx
mov ecx, dword [esp + 0x10]
mov ebp, dword [esp + 0xb4]
mov ebx, dword [esp + 0x18]
mov dword [esi], eax
lea esi, [edx + 4]
mov dword [esp + 0x90], edx
mov edx, dword [esp + 0x14]
mov dword [esp + 0x94], edi
mov dword [esp + 0x70], 1
mov dword [esp + 0x1c], esi
jmp 0x538170
mov ebp, dword [esp + 0xb4]
mov ebx, dword [esp + 0x18]
mov dword [esi], ecx
mov esi, edx
mov ecx, dword [esp + 0x10]
mov edx, dword [esp + 0x14]
mov dword [esp + 0x1c], esi
jmp 0x538170
add edi, 2
mov dword [esp + 0xa8], edi
mov edx, edi
cmp edi, ecx
jae 0x53a913
movzx ecx, word [edi]
lea eax, [ecx - 0x21]
cmp eax, 0x31
ja case.0x5398c0.34
movzx eax, byte [eax + 0x53aae8]
jmp dword [eax*4 + 0x53aab0]
mov ecx, dword [esp + 0x10]
add edi, 2
mov dword [esp + 0xa8], edi
cmp edi, ecx
jae 0x53a913
movzx eax, word [edi]
cmp eax, 0x3c
jne 0x5398ef
mov eax, 0x3e
jmp 0x53a06c
cmp eax, 0x3e
je 0x5399b3
mov ebp, dword [esp + 0xb4]
cmp eax, 0x3d
jne 0x53a7c1
push ebp
lea eax, [esp + 0x2c]
push eax
lea eax, [esp + 0x3c]
push eax
lea eax, [esp + 0x5c]
push eax
lea eax, [esp + 0x58]
push eax
push 0x29
push dword [esp + 0x5c]
lea eax, [esp + 0xc4]
push ecx
push eax
call fcn.0053be60
add esp, 0x24
test eax, eax
je 0x53a87c
mov eax, dword [esp + 0x34]
mov dword [esi], 0x80040000
mov dword [esi + 4], eax
mov eax, dword [esp + 0x48]
mov dword [esi + 8], eax
add esi, 0xc
jmp 0x5388dd
mov ecx, dword [esp + 0x10]
xor eax, eax
add edi, 2
mov dword [esp + 0x3c], eax
cmp edi, ecx
jae 0x53a7cb
cmp word [edi], 0x29
jne 0x53a7cb
mov ebp, dword [esp + 0xb4]
jmp 0x53a327
mov edx, dword [esp + 0x10]
mov eax, edx
sub eax, edi
and eax, 0xfffffffe
cmp eax, 4
jl 0x5399a5
movzx eax, word [edi + 2]
cmp eax, 0x30
jb 0x5399a5
cmp eax, 0x39
jbe 0x53a2b0
mov ecx, 0x81
jmp 0x53a918
mov ecx, dword [esp + 0x10]
mov ebp, dword [esp + 0xb4]
lea eax, [esp + 0x28]
push ebp
push eax
lea eax, [esp + 0x3c]
push eax
lea eax, [esp + 0x5c]
push eax
lea eax, [esp + 0x58]
push eax
push 0x29
push dword [esp + 0x5c]
lea eax, [esp + 0xc4]
push ecx
push eax
call fcn.0053be60
add esp, 0x24
test eax, eax
je 0x53a87c
mov eax, dword [esp + 0x34]
mov dword [esi], 0x80210000
mov dword [esi + 4], eax
mov eax, dword [esp + 0x48]
mov dword [esi + 8], eax
add esi, 0xc
jmp 0x5388dd
mov ebp, dword [esp + 0x10]
lea edx, [edi + 2]
mov edi, edx
cmp edx, ebp
jae 0x53a913
mov eax, dword [esp + 0x24]
mov ecx, dword [esp + 0x18]
dec eax
mov dword [esp + 0x6c], eax
test ecx, ecx
je 0x539a44
test byte [esp + 0x2c], 4
je 0x539a44
lea eax, [esi - 0x10]
cmp ecx, eax
jne 0x539a44
cmp dword [esi - 4], 0xff
cmove esi, ecx
movzx ebx, word [edi]
mov eax, esi
mov dword [esp + 0x18], eax
mov dword [esp + 0x64], eax
mov dword [esp + 0x68], 1
cmp ebx, 0x29
je 0x539af2
cmp ebx, 0x30
jb 0x539a70
cmp ebx, 0x39
jbe 0x539af2
mov ecx, dword [0x5ae56c]
xor eax, eax
mov dword [esp + 0x3c], eax
test ecx, ecx
je 0x539a94
cmp ebx, ecx
je 0x539a9e
mov ecx, dword [eax*4 + 0x5ae570]
inc eax
mov dword [esp + 0x3c], eax
test ecx, ecx
jne 0x539a80
mov ecx, 0xb6
jmp 0x53a918
mov ecx, dword [eax*4 + 0x5ae548]
test ecx, ecx
je 0x539a94
mov dword [esi], 0x80070000
nop
add edi, 2
cmp edi, ebp
jae 0x53a7d5
movzx eax, word [edi]
cmp eax, ecx
jne 0x539ab0
add edi, 2
cmp edi, ebp
jae 0x539ad0
movzx eax, word [edi]
cmp eax, ecx
je 0x539ab0
mov eax, edi
mov ecx, edi
sub eax, edx
sar eax, 1
mov dword [esi + 0xc], eax
add esi, 0x10
mov eax, dword [esp + 0xb4]
sub edx, dword [eax + 0x1c]
sar edx, 1
mov dword [esp + 0x48], edx
mov dword [esi], edx
jmp 0x539b31
xor ebx, ebx
mov dword [esi], 0x80060000
add esi, 0xc
nop dword [eax]
movzx eax, word [edi]
mov ecx, edx
cmp eax, 0x30
jb 0x539b2f
cmp eax, 0x39
ja 0x539b2f
lea ecx, [ebx - 6]
lea ecx, [ebx + ecx*4]
lea ebx, [eax + ecx*2]
lea edi, [edx + 2]
mov ecx, edi
cmp ebx, 0xff
jg 0x53a7e1
mov edx, edi
cmp edi, ebp
jb 0x539b00
mov dword [esi], ebx
cmp ecx, ebp
jae 0x53a7eb
cmp word [edi], 0x29
jne 0x53a7eb
mov ebp, dword [esp + 0xb4]
lea edi, [ecx + 2]
mov ebx, dword [esp + 0x18]
mov eax, edi
mov ecx, dword [esp + 0x10]
mov edx, dword [esp + 0x14]
sub eax, dword [ebp + 0x1c]
sar eax, 1
add esi, 4
mov dword [ebx + 4], eax
mov dword [ebx + 8], 0
mov dword [esp + 0x1c], esi
jmp 0x538170
mov ecx, dword [esp + 0x10]
add edi, 2
mov dword [esp + 0xa8], edi
cmp edi, ecx
jae 0x53a913
movzx eax, word [edi]
inc dword [esp + 0x14]
cmp eax, 0x3f
je 0x539ef7
cmp eax, 0x2a
je 0x539ef7
mov ebp, dword [esp + 0xb4]
lea eax, [esp + 0x28]
push eax
lea eax, [esp + 0x40]
push eax
push 0xa1
push 0xffff
push dword [ebp + 0x74]
lea eax, [esp + 0xbc]
push ecx
push eax
call fcn.0053c0b0
add esp, 0x1c
test eax, eax
je 0x539c0d
mov ecx, dword [esp + 0x3c]
mov edi, dword [esp + 0xa8]
test ecx, ecx
jle 0x53a7f5
mov dword [esi], 0x80120000
mov eax, edi
sub eax, dword [ebp + 0x1c]
sar eax, 1
sub eax, 2
mov dword [esi + 8], ecx
mov dword [esi + 4], eax
add esi, 8
mov dword [esp + 0x48], eax
jmp 0x539eca
mov ecx, dword [esp + 0x28]
test ecx, ecx
jne 0x53a73e
mov ecx, dword [esp + 0x10]
mov ebp, ecx
mov ebx, dword [esp + 0xa8]
sub ebp, ebx
sar ebp, 1
cmp ebp, 0xa
jl 0x539d5f
push 7
push str.VERSION
push ebx
call fcn.0053c520
add esp, 0xc
test eax, eax
jne 0x539d5b
cmp word [ebx + 0xe], 0x29
lea edi, [ebx + 0xe]
je 0x539d5b
xor ebp, ebp
xor ebx, ebx
cmp word [edi], 0x3e
mov eax, edi
mov dword [esp + 0x30], ebp
jne 0x539c71
add edi, 2
lea ebp, [ebx + 1]
mov eax, edi
cmp word [edi], 0x3d
jne 0x53a7ff
lea edi, [eax + 2]
movzx eax, word [edi]
mov dword [esp + 0xa8], edi
cmp eax, 0x30
jb 0x53a7ff
cmp eax, 0x39
ja 0x53a7ff
lea eax, [esp + 0x28]
push eax
lea eax, [esp + 0x34]
push eax
push 0xb3
push 0x3e8
push 0xffffffffffffffff
push dword [esp + 0x24]
lea eax, [esp + 0xc0]
push eax
call fcn.0053c0b0
add esp, 0x1c
test eax, eax
je 0x53a875
mov edi, dword [esp + 0xa8]
mov edx, dword [esp + 0x10]
cmp edi, edx
jae 0x53a7ff
cmp word [edi], 0x2e
jne 0x539d41
add edi, 2
cmp edi, edx
jae 0x53a7ff
movzx eax, word [edi]
cmp eax, 0x30
jb 0x53a7ff
cmp eax, 0x39
ja 0x53a7ff
sub eax, 0x30
add edi, 2
lea ebx, [eax + eax*4]
add ebx, ebx
cmp edi, edx
jae 0x53a7ff
movzx eax, word [edi]
cmp eax, 0x30
jb 0x539d37
cmp eax, 0x39
ja 0x539d37
add eax, 0xffffffd0
lea ecx, [edi + 2]
add ebx, eax
mov edi, ecx
cmp ecx, edx
jae 0x53a7ff
cmp word [edi], 0x29
jne 0x53a7ff
mov eax, dword [esp + 0x30]
mov dword [esi], 0x80150000
mov dword [esi + 4], ebp
mov dword [esi + 8], eax
add esi, 0xc
mov dword [esi], ebx
jmp 0x539ec3
mov ecx, dword [esp + 0x10]
movzx eax, word [ebx]
mov dword [esp + 0x24], 0
cmp eax, 0x52
jne 0x539d8c
cmp ebp, 1
jle 0x539da7
cmp word [ebx + 2], 0x26
lea eax, [ebx + 2]
jne 0x539da7
mov ebx, 1
mov dword [esp + 0xa8], eax
jmp 0x539db5
cmp eax, 0x3c
jne 0x539d9a
mov ebx, dword [esp + 0x24]
lea edi, [eax + 2]
jmp 0x539dba
cmp eax, 0x27
jne 0x539da7
mov ebx, dword [esp + 0x24]
mov edi, eax
jmp 0x539dba
sub ebx, 2
mov dword [esp + 0xa8], ebx
mov ebx, dword [esp + 0x24]
mov edi, 0x29
mov ebp, dword [esp + 0xb4]
lea eax, [esp + 0x28]
push ebp
push eax
lea eax, [esp + 0x3c]
push eax
lea eax, [esp + 0x5c]
push eax
lea eax, [esp + 0x58]
push eax
push edi
push dword [esp + 0x5c]
lea eax, [esp + 0xc4]
push ecx
push eax
call fcn.0053be60
add esp, 0x24
test eax, eax
je 0x53a87c
mov ebp, dword [esp + 0x34]
test ebx, ebx
je 0x539e11
mov edi, dword [esp + 0xa8]
mov dword [esi], 0x80130000
sub edi, 2
jmp 0x539eac
cmp edi, 0x29
jne 0x539e9f
mov ebx, dword [esp + 0x50]
cmp ebp, 6
jne 0x539e4d
push 6
push str.DEFINE
push ebx
call fcn.0053c520
add esp, 0xc
test eax, eax
jne 0x539e4d
mov eax, 0x80100000
mov dword [esi], eax
mov edi, dword [esp + 0xa8]
sub edi, 2
jmp 0x539eac
mov eax, 1
mov dword [esp + 0x3c], eax
mov ecx, eax
cmp ebp, eax
jle 0x539e7d
mov edi, eax
nop
movzx edx, word [ebx + eax*2]
mov ecx, edi
cmp edx, 0x30
jb 0x539e7d
cmp edx, 0x39
ja 0x539e7d
inc eax
mov dword [esp + 0x3c], eax
mov ecx, eax
mov edi, ecx
cmp eax, ebp
jl 0x539e60
cmp word [ebx], 0x52
jne 0x539e8c
mov eax, 0x80140000
cmp ecx, ebp
jge 0x539e91
mov eax, 0x80110000
mov dword [esi], eax
mov edi, dword [esp + 0xa8]
sub edi, 2
jmp 0x539eac
mov edi, dword [esp + 0xa8]
mov dword [esi], 0x80110000
mov eax, dword [esi]
add esi, 4
cmp eax, 0x80100000
je 0x539ebd
mov dword [esi], ebp
add esi, 4
mov eax, dword [esp + 0x48]
mov dword [esi], eax
mov ebp, dword [esp + 0xb4]
mov ecx, dword [esp + 0x10]
cmp edi, ecx
jae 0x53a809
cmp word [edi], 0x29
jne 0x53a809
mov ebx, dword [esp + 0x18]
add edi, 2
mov edx, dword [esp + 0x14]
add esi, 4
mov dword [esp + 0x1c], esi
jmp 0x538170
mov ebp, dword [esp + 0xb4]
mov edi, edx
mov ebx, dword [esp + 0x18]
mov edx, dword [esp + 0x14]
mov dword [esi], 0x800f0000
add esi, 4
mov dword [esp + 0x6c], 2
mov dword [esp + 0x1c], esi
jmp 0x538170
mov edx, dword [esp + 0x14]
mov ecx, dword [esp + 0x10]
inc edx
mov ebp, dword [esp + 0xb4]
mov dword [esi], 0x80020000
add esi, 4
mov dword [esp + 0x1c], esi
add edi, 2
mov dword [esp + 0x14], edx
jmp 0x538169
mov ebx, dword [esp + 0x24]
mov ebp, dword [esp + 0xb4]
add edi, 2
mov dword [esi], 0x80230000
jmp 0x53a007
mov ebx, dword [esp + 0x24]
mov ebp, dword [esp + 0xb4]
add edi, 2
mov dword [esi], 0x80270000
jmp 0x53a007
mov ebx, dword [esp + 0x24]
mov ebp, dword [esp + 0xb4]
add edi, 2
mov dword [esi], 0x80240000
jmp 0x53a007
mov eax, dword [esp + 0x10]
sub eax, edi
and eax, 0xfffffffe
cmp eax, 2
jle 0x5398e5
movzx eax, word [edi + 2]
cmp eax, 0x3d
je 0x539fd1
cmp eax, 0x21
je 0x539fbf
cmp eax, 0x2a
jne 0x5398e5
cmp eax, 0x21
mov edx, 0x80280000
mov eax, 0x80260000
cmove edx, eax
jmp 0x539fd6
mov edx, 0x80250000
mov ebx, dword [esp + 0x24]
mov eax, dword [esp + 0xb0]
mov ebp, dword [esp + 0xb4]
mov dword [esi], edx
mov dword [eax], 1
mov eax, edi
sub eax, dword [ebp + 0x1c]
add edi, 4
sar eax, 1
sub eax, 2
mov dword [esi + 4], eax
add esi, 4
mov dword [esp + 0x48], eax
mov edx, dword [esp + 0x14]
add esi, 4
inc edx
mov dword [esp + 0x1c], esi
mov dword [esp + 0x14], edx
test ebx, ebx
jle 0x53a05e
mov edx, dword [esp + 0x38]
test edx, edx
jne 0x53a02c
mov edx, dword [ebp + 0x14]
mov dword [esp + 0x38], edx
jmp 0x53a040
add edx, 0xc
mov dword [esp + 0x38], edx
cmp edx, dword [esp + 0x84]
jae 0x53a8a4
mov ecx, dword [esp + 0x14]
mov eax, 2
mov word [edx + 6], ax
mov eax, dword [esp + 0x2c]
and eax, 0x10424e8
mov word [edx], cx
mov dword [edx + 8], eax
mov edx, ecx
mov ecx, dword [esp + 0x10]
jmp 0x538169
mov eax, 0x27
mov ebp, dword [esp + 0xb4]
lea ecx, [esp + 0x28]
push ebp
push ecx
lea ecx, [esp + 0x3c]
push ecx
lea ecx, [esp + 0x5c]
push ecx
lea ecx, [esp + 0x58]
push ecx
push eax
push dword [esp + 0x5c]
lea eax, [esp + 0xc4]
push dword [esp + 0x2c]
push eax
call fcn.0053be60
add esp, 0x24
test eax, eax
je 0x53a87c
mov eax, dword [ebp + 0x74]
cmp eax, 0xffff
jae 0x53a857
inc dword [esp + 0x14]
inc eax
mov dword [ebp + 0x74], eax
or eax, 0x80080000
mov dword [esi], eax
add esi, 4
movzx edx, word [ebp + 0x58]
mov eax, 0x2710
mov dword [esp + 0x1c], esi
cmp dx, ax
jae 0x53a846
mov ecx, dword [esp + 0x34]
movzx eax, word [ebp + 0x5a]
add ecx, 2
cmp ecx, eax
mov ecx, dword [esp + 0x34]
jbe 0x53a0f9
lea eax, [ecx + 2]
mov word [ebp + 0x5a], ax
mov edi, dword [ebp + 0x64]
xor eax, eax
xor ebp, ebp
mov dword [esp + 0x30], 0
xor ebx, ebx
mov dword [esp + 0x3c], ebp
cmp ax, dx
jae 0x53a18a
movzx eax, word [edi + 8]
cmp ecx, eax
jne 0x53a161
push ecx
push dword [edi]
push dword [esp + 0x58]
call fcn.0053c4e0
add esp, 0xc
test eax, eax
jne 0x53a161
mov ecx, dword [esp + 0xb4]
mov eax, dword [edi + 4]
cmp eax, dword [ecx + 0x74]
je 0x53a18a
test byte [esp + 0x2c], 0x40
je 0x53a813
mov eax, 1
mov word [edi + 0xa], ax
mov dword [esp + 0x30], eax
mov dword [ecx + 0xbc], eax
jmp 0x53a174
mov ecx, dword [esp + 0xb4]
mov eax, dword [edi + 4]
cmp eax, dword [ecx + 0x74]
je 0x53a824
movzx eax, word [ecx + 0x58]
inc ebp
mov ecx, dword [esp + 0x34]
add edi, 0xc
mov dword [esp + 0x3c], ebp
mov ebx, ebp
cmp ebp, eax
jl 0x53a117
mov ebp, dword [esp + 0xb4]
movzx ecx, word [ebp + 0x58]
mov edx, ecx
cmp ebx, edx
jl case.default.0x538ac7
mov eax, dword [ebp + 0x68]
cmp edx, eax
jb 0x53a1fe
mov ecx, dword [ebp]
lea ebx, [eax + eax]
lea eax, [ebx + ebx*2]
shl eax, 2
push dword [ecx + 8]
push eax
mov eax, dword [ecx]
call eax
mov edi, eax
add esp, 8
test edi, edi
je 0x53a835
mov eax, dword [ebp + 0x68]
lea eax, [eax + eax*2]
shl eax, 2
push eax
push dword [ebp + 0x64]
push edi
call fcn.0056f940
add esp, 0xc
cmp dword [ebp + 0x68], 0x14
jbe 0x53a1f4
mov eax, dword [ebp]
push dword [eax + 8]
mov eax, dword [eax + 4]
push dword [ebp + 0x64]
call eax
add esp, 8
movzx ecx, word [ebp + 0x58]
mov dword [ebp + 0x64], edi
mov dword [ebp + 0x68], ebx
mov edx, dword [esp + 0x50]
mov edi, dword [esp + 0x34]
movzx eax, cx
mov ebx, dword [esp + 0x18]
lea ecx, [eax + eax*2]
mov eax, dword [ebp + 0x64]
mov dword [eax + ecx*4], edx
movzx eax, word [ebp + 0x58]
lea ecx, [eax + eax*2]
mov eax, dword [ebp + 0x64]
mov word [eax + ecx*4 + 8], di
movzx eax, word [ebp + 0x58]
mov ecx, dword [ebp + 0x64]
mov edi, dword [esp + 0xa8]
lea edx, [eax + eax*2]
mov eax, dword [ebp + 0x74]
mov dword [ecx + edx*4 + 4], eax
movzx eax, word [ebp + 0x58]
mov edx, dword [esp + 0x30]
lea ecx, [eax + eax*2]
mov eax, dword [ebp + 0x64]
mov word [eax + ecx*4 + 0xa], dx
inc word [ebp + 0x58]
mov ecx, dword [esp + 0x10]
mov edx, dword [esp + 0x14]
jmp 0x538170
cmp ecx, 0x2d
jne 0x53a284
mov edx, dword [esp + 0x10]
mov eax, edx
sub eax, edi
and eax, 0xfffffffe
cmp eax, 2
jle 0x53a284
movzx eax, word [edi + 2]
cmp eax, 0x30
jb 0x53a284
cmp eax, 0x39
jbe 0x53a2b0
mov eax, dword [esp + 0x14]
mov edx, dword [esp + 0x38]
inc eax
mov dword [esp + 0x14], eax
test edx, edx
jne 0x53a35b
mov ebp, dword [esp + 0xb4]
mov edx, dword [ebp + 0x14]
mov dword [esp + 0x38], edx
jmp 0x53a376
mov edx, dword [esp + 0x10]
cmp ecx, 0x30
jb 0x53a2c6
cmp ecx, 0x39
ja 0x53a2c6
mov ebp, dword [esp + 0xb4]
or eax, 0xffffffff
jmp 0x53a2d0
mov ebp, dword [esp + 0xb4]
mov eax, dword [ebp + 0x74]
lea ecx, [esp + 0x28]
push ecx
lea ecx, [esp + 0x40]
push ecx
push 0xa1
push 0xffff
push eax
push edx
lea eax, [esp + 0xc0]
push eax
call fcn.0053c0b0
add esp, 0x1c
test eax, eax
je 0x53a87c
mov eax, dword [esp + 0x3c]
mov edi, dword [esp + 0xa8]
test eax, eax
js 0x53a868
mov ecx, dword [esp + 0x10]
cmp edi, ecx
jae 0x53a913
cmp word [edi], 0x29
jne 0x53a913
mov ebx, dword [esp + 0x18]
or eax, 0x80200000
mov edx, dword [esp + 0x14]
mov dword [esi], eax
mov eax, edi
sub eax, dword [ebp + 0x1c]
add edi, 2
sar eax, 1
mov dword [esi + 4], eax
add esi, 8
mov dword [esp + 0x48], eax
mov dword [esp + 0x20], 1
mov dword [esp + 0x1c], esi
jmp 0x538170
add edx, 0xc
mov dword [esp + 0x38], edx
cmp edx, dword [esp + 0x84]
jae 0x53a8a4
mov ebp, dword [esp + 0xb4]
mov ebx, dword [esp + 0x2c]
mov word [edx], ax
xor eax, eax
mov word [edx + 6], ax
mov eax, ebx
and eax, 0x10424e8
mov dword [edx + 8], eax
cmp word [edi], 0x7c
jne 0x53a3d4
movzx eax, word [ebp + 0x74]
mov ecx, dword [esp + 0x10]
mov ebx, dword [esp + 0x18]
mov word [edx + 2], ax
movzx eax, word [ebp + 0x74]
mov word [edx + 4], ax
mov eax, 1
mov word [edx + 6], ax
or dword [ebp + 0x70], 0x200000
mov edx, dword [esp + 0x14]
mov dword [esi], 0x801a0000
add esi, 4
add edi, 2
mov dword [esp + 0x1c], esi
jmp 0x538170
xor eax, eax
mov dword [esp + 0x40], ebx
mov dword [edx + 2], eax
lea ebx, [esp + 0x30]
xor edx, edx
mov dword [esp + 0x24], 1
xor ebp, ebp
mov dword [esp + 0x60], edx
cmp word [edi], 0x5e
mov ecx, edi
mov dword [esp + 0x30], ebp
jne 0x53a40e
and dword [esp + 0x2c], 0xfeffdb57
add edi, 2
mov dword [esp + 0x24], eax
mov ecx, edi
cmp ecx, dword [esp + 0x10]
jae 0x53a4e5
mov edx, ecx
nop word [eax + eax]
movzx eax, word [edi]
mov ecx, edx
cmp eax, 0x29
je 0x53a4dd
cmp eax, 0x3a
je 0x53a4dd
sub eax, 0x2d
lea edi, [edx + 2]
cmp eax, 0x4b
ja case.0x53a44d.46
movzx eax, byte [eax + 0x53ab40]
jmp dword [eax*4 + 0x53ab1c]
cmp dword [esp + 0x24], ebp
je 0x53a88c
lea ebx, [esp + 0x60]
mov dword [esp + 0x24], ebp
mov ecx, edi
jmp 0x53a4d1
mov eax, dword [esp + 0xb4]
mov ecx, edi
or dword [ebx], 0x40
or dword [eax + 0x70], 0x400
jmp 0x53a4d1
or dword [ebx], 8
mov ecx, edi
jmp 0x53a4d1
or dword [ebx], 0x400
mov ecx, edi
jmp 0x53a4d1
or dword [ebx], 0x2000
mov ecx, edi
jmp 0x53a4d1
or dword [ebx], 0x20
mov ecx, edi
jmp 0x53a4d1
or dword [ebx], 0x40000
mov ecx, edi
jmp 0x53a4d1
mov eax, dword [ebx]
mov ecx, edi
or eax, 0x80
mov dword [ebx], eax
cmp edi, dword [esp + 0x10]
jae 0x53a4d1
cmp word [edi], 0x78
jne 0x53a4d1
or eax, 0x1000000
lea ecx, [edi + 2]
mov dword [ebx], eax
mov edi, ecx
mov edx, ecx
cmp edi, dword [esp + 0x10]
jb 0x53a420
mov ebp, dword [esp + 0x30]
mov edx, dword [esp + 0x60]
mov eax, ebp
and eax, 0x1000080
cmp eax, 0x80
je 0x53a4f7
test dl, dl
jns 0x53a4fd
or edx, 0x1000000
or ebp, dword [esp + 0x2c]
not edx
and ebp, edx
mov ebx, ebp
mov dword [esp + 0x2c], ebx
cmp ecx, dword [esp + 0x10]
jae 0x53a913
mov ax, word [edi]
lea edi, [ecx + 2]
mov ebp, dword [esp + 0xb4]
cmp ax, 0x29
jne 0x53a553
mov eax, dword [esp + 0xa0]
mov edx, dword [esp + 0x38]
movzx ecx, ax
mov dword [esp + 0x14], ecx
cmp edx, dword [ebp + 0x14]
jbe 0x53a54e
cmp word [edx - 0xc], cx
lea eax, [edx - 0xc]
jne 0x53a54e
mov dword [esp + 0x38], eax
jmp 0x53a560
mov word [edx], cx
jmp 0x53a560
mov dword [esi], 0x801a0000
add esi, 4
mov dword [esp + 0x1c], esi
mov ecx, dword [esp + 0x10]
mov edx, dword [esp + 0x14]
cmp ebx, dword [esp + 0x40]
je 0x538169
mov dword [esi], 0x801b0000
mov dword [esi + 4], ebx
add esi, 8
mov ebx, dword [esp + 0x18]
mov dword [esp + 0x1c], esi
jmp 0x538170
mov edx, dword [esp + 0x38]
mov ebp, dword [esp + 0xb4]
test edx, edx
je 0x53a5bf
mov ecx, dword [esp + 0x14]
cmp word [edx], cx
jne 0x53a5bf
test byte [edx + 6], 1
je 0x53a5bf
movzx eax, word [edx + 4]
mov ecx, dword [ebp + 0x74]
cmp ecx, eax
jbe 0x53a5b8
mov word [edx + 4], cx
movzx eax, word [edx + 2]
mov dword [ebp + 0x74], eax
mov ecx, dword [esp + 0x10]
mov ebx, dword [esp + 0x18]
mov edx, dword [esp + 0x14]
mov dword [esi], 0x80010000
add esi, 4
mov dword [esp + 0x1c], esi
jmp 0x538170
mov edx, dword [esp + 0x38]
mov dword [esp + 0x20], 1
test edx, edx
je 0x53a66f
mov ecx, dword [esp + 0x14]
cmp word [edx], cx
jne 0x53a66f
mov ebx, dword [esp + 0x2c]
movzx ecx, word [edx + 6]
and ebx, 0xfefbdb17
or ebx, dword [edx + 8]
mov eax, ecx
mov ebp, dword [esp + 0xb4]
mov dword [esp + 0x2c], ebx
test cl, 1
je 0x53a63b
movzx edx, word [edx + 4]
cmp edx, dword [ebp + 0x74]
jbe 0x53a637
mov dword [ebp + 0x74], edx
mov edx, dword [esp + 0x38]
movzx eax, word [edx + 6]
jmp 0x53a63b
mov edx, dword [esp + 0x38]
mov ecx, eax
not ecx
shr ecx, 1
and ecx, 1
mov dword [esp + 0x20], ecx
test al, 4
je 0x53a655
mov dword [esi], 0x80190000
add esi, 4
cmp edx, dword [ebp + 0x14]
jne 0x53a662
xor eax, eax
mov dword [esp + 0x38], eax
jmp 0x53a676
sub edx, 0xc
mov dword [esp + 0x20], ecx
mov dword [esp + 0x38], edx
jmp 0x53a676
mov ebp, dword [esp + 0xb4]
mov edx, dword [esp + 0x14]
test dx, dx
je 0x53a8ae
mov ecx, dword [esp + 0x10]
add edx, 0xffff
mov dword [esi], 0x80190000
add esi, 4
mov dword [esp + 0x14], edx
mov dword [esp + 0x1c], esi
jmp 0x538169
mov dword [esi], ebx
add esi, 4
mov dword [esp + 0x1c], esi
mov dword [esp + 0x20], 1
jmp 0x53815e
mov ecx, 0x8c
jmp 0x53a91f
mov edi, dword [esp + 0x40]
mov ecx, 0xb0
add edi, 0xfffffffe
jmp 0x53a91f
mov ecx, 0x76
jmp 0x53a918
mov ecx, 0x6d
sub edi, 2
jmp 0x53a918
movzx eax, word [edi]
xor ecx, ecx
mov edi, dword [esp + 0x40]
add edi, 0xfffffffe
cmp eax, 0x3a
setne cl
add ecx, 0x70
jmp 0x53a918
mov ecx, 0x71
sub edi, 2
jmp 0x53a918
mov ebp, dword [esp + 0xb4]
mov edi, dword [esp + 0xa8]
jmp 0x53a91f
mov edi, dword [esp + 0xa8]
mov ecx, 0x6b
sub edi, 2
jmp 0x53a91f
mov ecx, 0xab
mov edi, dword [esp + 0xa8]
jmp 0x53a91f
mov edi, dword [esp + 0xa8]
mov ecx, 0x96
jmp 0x53a91f
mov ebp, dword [esp + 0xb4]
mov ecx, 0x96
jmp 0x53a91f
mov ecx, 0x6c
sub edi, 2
jmp 0x53a918
mov ecx, 0x6a
jmp 0x53a91f
cmp edx, 0x80270000
je 0x53a79c
mov ecx, 0x80
cmp edx, 0x80280000
jne 0x53a918
mov ecx, 0xc6
jmp 0x53a918
mov ebp, dword [esp + 0xb4]
mov ecx, 0xc3
jmp 0x53a91f
mov ecx, 0xa6
jmp 0x53a918
mov ecx, 0x8d
jmp 0x53a91f
mov ecx, 0x9e
jmp 0x53a918
mov ecx, 0xb5
mov edi, edx
jmp 0x53a918
mov ecx, 0x8a
jmp 0x53a918
mov ecx, 0x8b
jmp 0x53a918
mov ecx, 0x73
jmp 0x53a91f
mov ecx, 0xb3
jmp 0x53a918
mov ecx, 0x7c
jmp 0x53a91f
mov edi, dword [esp + 0xa8]
mov ecx, 0x8f
jmp 0x53a918
mov edi, dword [esp + 0xa8]
mov ecx, 0xa5
jmp 0x53a918
mov edi, dword [esp + 0xa8]
mov ecx, 0x79
jmp 0x53a91f
mov edi, dword [esp + 0xa8]
mov ecx, 0x95
jmp 0x53a91f
mov edi, dword [esp + 0xa8]
mov ecx, 0xc5
jmp 0x53a91f
mov ecx, 0x73
sub edi, 2
jmp 0x53a918
mov ebp, dword [esp + 0xb4]
mov edi, dword [esp + 0xa8]
mov ecx, dword [esp + 0x28]
jmp 0x53a91f
mov ecx, 0xc2
mov edi, edx
jmp 0x53a918
mov ecx, 0x6f
mov edi, edx
jmp 0x53a918
mov ecx, 0xb8
jmp 0x53a918
mov ecx, 0x7a
sub edi, 2
jmp 0x53a918
mov ecx, 0x77
jmp 0x53a91f
cmp dword [esp + 0x70], 0
je 0x53808c
mov ecx, 0xa0
jmp 0x53a918
test byte [esp + 0x78], 4
je 0x53a8e8
mov dword [ecx], 0x80190000
mov dword [ecx + 4], 0x80180005
add ecx, 8
cmp ecx, dword [esp + 0x8c]
jb 0x53a8f8
mov ecx, 0xa3
jmp 0x53a918
cmp word [esp + 0x14], 0
mov dword [ecx], SysReAllocString
jne 0x53a913
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x94
ret
mov ecx, 0x72
mov ebp, dword [esp + 0xb4]
sub edi, dword [ebp + 0x1c]
mov eax, ecx
sar edi, 1
mov dword [ebp + 0x54], edi
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x94
ret