Function at 0x52b240
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 0x52b2f7
mov dword [esi], 0x80090000
jmp 0x52b302
test cl, 4
je 0x52b310
mov dword [esi], 0x80180005
mov dword [esi + 4], 0x801a0000
add esi, 8
mov dword [esp + 0x1c], esi
test edi, 0x2000000
je 0x52b474
mov edi, dword [esp + 0xa8]
cmp edi, ebp
jae 0x52b403
nop dword [eax + eax]
cmp esi, dword [esp + 0x8c]
jae 0x52dc61
movzx ecx, word [edi]
mov edx, edi
lea edi, [edx + 2]
test eax, eax
je 0x52b373
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x52b373
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 0x52b3e7
cmp dword [esp + 0x18], 0
mov ebx, esi
je 0x52b3b3
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 0x52b3b3
mov eax, dword [esp + 0x18]
cmp dword [eax + 0xc], 0xff
je 0x52b3ce
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 0x52b330
mov ebx, dword [esp + 0x18]
mov edx, dword [esp + 0xb4]
mov ecx, esi
test ebx, ebx
je 0x52b416
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 0x52b454
test ebx, ebx
je 0x52b431
lea eax, [esi - 0x10]
cmp ebx, eax
jne 0x52b431
cmp dword [ebx + 0xc], 0xff
je 0x52b44a
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 0x52dc41
mov dword [ecx], 0x80190000
mov dword [ecx + 4], 0x80160000
jmp 0x52dc55
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 0x52b4e0
mov ecx, dword [esp + 0x10]
jmp 0x52b4e0
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 0x52dc2f
mov dword [esp + 0x60], 0
mov dword [esp + 0x30], 0
cmp esi, dword [esp + 0x8c]
jae 0x52dc61
mov ecx, dword [ebp]
movzx eax, dx
cmp eax, dword [ecx + 0x20]
ja 0x52dc28
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 0x52b58b
mov eax, ebx
mov dword [esp + 0x40], edi
and eax, 0xfc00
cmp eax, 0xd800
jne 0x52b587
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 0x52b58b
mov eax, dword [esp + 0x40]
cmp dword [esp + 0x54], 0
je 0x52b62f
cmp ebp, 0x5c
jne 0x52b5b9
mov ecx, dword [esp + 0x10]
cmp eax, ecx
jae 0x52b5b9
cmp word [edi], 0x45
jne 0x52b5b9
mov dword [esp + 0x54], 0
lea edi, [eax + 2]
jmp 0x52b4ce
cmp dword [esp + 0x6c], 0
jg case.0x52ba8d.34
cmp dword [esp + 0x70], 0
jne 0x52b606
mov ecx, dword [esp + 0x68]
mov eax, ecx
dec ecx
mov dword [esp + 0x68], ecx
test eax, eax
jg 0x52b5fe
push dword [esp + 0xb4]
lea eax, [esp + 0x68]
push esi
push dword [esp + 0x7c]
push eax
push edx
call fcn.0052b1c0
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 0x52b4e0
cmp dword [esp + 0x70], 0
je 0x52b7a6
mov eax, dword [esp + 0x2c]
and eax, 0x400080
cmp eax, 0x400080
jne 0x52b69a
cmp ebp, 0xff
jbe 0x52b665
mov eax, ebp
or eax, 1
cmp eax, 0x200f
je 0x52b665
cmp eax, 0x2029
jne 0x52b60e
cmp ebp, 0x100
jae 0x52b7a6
cmp ebp, 0x23
je 0x52b7d6
mov eax, dword [esp + 0xb4]
mov eax, dword [eax + 0x10]
test byte [ebx + eax], 1
jne 0x52b7a6
cmp ebp, 0x85
je 0x52b7d6
cmp ebp, 0x29
je 0x52b73b
cmp ebp, 0x5c
jne 0x52b60e
mov edx, dword [esp + 0x2c]
mov ebp, dword [esp + 0xb4]
test edx, 0x400000
je 0x52b729
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.00525000
mov ecx, dword [esp + 0x48]
add esp, 0x20
test ecx, ecx
jne 0x52da89
sub eax, ecx
je 0x52b71e
sub eax, 0x19
je case.default.0x52be37
mov edi, dword [esp + 0xa8]
sub eax, 1
jne 0x52da29
mov ecx, dword [esp + 0x10]
mov dword [esp + 0x54], 1
jmp 0x52b4d5
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 0x52b4d5
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 0x52da33
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 0x52b4e0
mov dword [esi], eax
add esi, 4
mov dword [esp + 0x1c], esi
mov dword [esp + 0x80], 0
jmp 0x52b4d5
cmp ebp, 0x5c
jne 0x52b7d6
mov ecx, dword [esp + 0x40]
cmp ecx, dword [esp + 0x10]
jae 0x52b7d6
movzx eax, word [edi]
cmp eax, 0x51
je 0x52b7c2
cmp eax, 0x45
jne 0x52b7d6
xor edx, edx
lea edi, [ecx + 2]
cmp eax, 0x51
sete dl
mov dword [esp + 0x54], edx
jmp 0x52b4ca
test byte [esp + 0x2c], 0x80
je 0x52b8fd
cmp ebp, 0x100
jae 0x52b7fd
mov eax, dword [esp + 0xb4]
mov eax, dword [eax + 0x10]
test byte [ebx + eax], 1
jne 0x52b4ca
cmp ebp, 0x85
je 0x52b4ca
mov eax, ebp
or eax, 1
cmp eax, 0x200f
je 0x52b4ca
cmp eax, 0x2029
je 0x52b4ca
cmp ebp, 0x23
jne 0x52b8fd
mov ecx, dword [esp + 0x10]
mov ebp, dword [esp + 0xb4]
mov ebx, dword [esp + 0x18]
mov edx, dword [esp + 0x14]
cmp edi, ecx
jae 0x52b4e0
nop dword [eax + eax]
mov eax, dword [ebp + 0x90]
mov ecx, dword [ebp + 0x20]
test eax, eax
je 0x52b889
cmp edi, ecx
jae 0x52b8b6
push dword [esp + 0x44]
lea ebx, [ebp + 0x94]
push ebx
push ecx
push eax
push edi
call fcn.0052fe70
add esp, 0x14
test eax, eax
je 0x52b8b6
mov edx, dword [ebx]
mov ecx, dword [esp + 0x10]
lea edi, [edi + edx*2]
jmp 0x52b4d5
mov edx, dword [ebp + 0x94]
lea eax, [edx + edx]
sub ecx, eax
cmp edi, ecx
ja 0x52b8b6
mov ax, word [edi]
cmp ax, word [ebp + 0xa0]
jne 0x52b8b6
cmp edx, 1
je 0x52b87d
mov ax, word [edi + 2]
cmp ax, word [ebp + 0xa2]
je 0x52b87d
mov ecx, dword [esp + 0x10]
add edi, 2
cmp dword [esp + 0x44], 0
mov eax, edi
je 0x52b8e8
cmp edi, ecx
jae 0x52b8e8
mov ax, word [edi]
mov edx, 0xfc00
and ax, dx
mov edx, 0xdc00
cmp ax, dx
jne 0x52b850
add edi, 2
mov eax, edi
mov ebx, dword [esp + 0x18]
mov edx, dword [esp + 0x14]
cmp eax, ecx
jb 0x52b850
jmp 0x52b4e0
cmp ebp, 0x28
jne 0x52b941
mov ecx, dword [esp + 0x10]
mov eax, ecx
sub eax, edi
and eax, 0xfffffffe
cmp eax, 4
jl 0x52b97b
cmp word [edi], 0x3f
jne 0x52b97b
cmp word [edi + 2], 0x23
jne 0x52b97b
nop
add edi, 2
cmp edi, ecx
jae 0x52da44
cmp word [edi], 0x29
jne 0x52b920
cmp edi, ecx
jae 0x52da44
add edi, 2
jmp 0x52b4ce
cmp ebp, 0x2a
je 0x52b9b2
cmp ebp, 0x2b
je 0x52b9b2
cmp ebp, 0x3f
je 0x52b9b2
cmp ebp, 0x7b
jne 0x52b97b
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.0052f560
add esp, 0x14
test eax, eax
jne 0x52b9b2
mov edx, dword [esp + 0x24]
mov ecx, dword [esp + 0x68]
mov eax, ecx
dec ecx
mov dword [esp + 0x68], ecx
test eax, eax
jg 0x52b9b2
push dword [esp + 0xb4]
lea eax, [esp + 0x68]
push esi
push dword [esp + 0x7c]
push eax
push edx
call fcn.0052b1c0
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 0x52ba14
cmp ebp, 0x28
jne case.0x52ba8d.34
mov ecx, dword [esp + 0x10]
mov eax, ecx
sub eax, edi
and eax, 0xfffffffe
cmp eax, 6
jl case.0x52ba8d.34
movzx eax, word [edi]
cmp eax, 0x3f
je 0x52ba7a
cmp eax, 0x2a
jne case.0x52ba8d.34
movzx eax, word [edi + 2]
mov ecx, 0xff
mov ebp, dword [esp + 0xb4]
cmp ax, cx
ja 0x52bab1
mov ecx, eax
mov eax, dword [ebp + 0x10]
test byte [ecx + eax], 4
je 0x52bab1
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 0x52bacc
cmp ebx, 0x3f
je 0x52ba4e
cmp ebx, 0x2b
jne 0x52bacc
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 0x52b4ca
movzx eax, word [edi + 2]
add eax, 0xffffffdf
cmp eax, 0x22
ja case.0x52ba8d.34
movzx eax, byte [eax + 0x52dcb4]
jmp dword [eax*4 + 0x52dca4]
movzx eax, word [edi + 4]
cmp eax, 0x3d
je case.0x52ba8d.33
cmp eax, 0x21
je case.0x52ba8d.33
mov ebp, dword [esp + 0xb4]
mov edi, dword [esp + 0x40]
mov ecx, 0x80
add edi, 0xfffffffe
jmp 0x52dc8f
cmp edx, 2
jne case.0x52ba8d.34
jmp case.0x52ba8d.33
lea eax, [ebx - 0x24]
cmp eax, 0x58
ja case.0x52badf.37
movzx eax, byte [eax + 0x52dd0c]
jmp dword [eax*4 + 0x52dcd8]
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.00525000
mov ecx, dword [esp + 0x48]
add esp, 0x20
mov ebx, eax
test ecx, ecx
jne 0x52bb5a
test ebx, ebx
je 0x52bea1
js 0x52be5f
lea eax, [ebx - 6]
cmp eax, 0x16
ja case.0x52bb40.13
movzx eax, byte [eax + 0x52dd80]
jmp dword [eax*4 + 0x52dd68]
test dword [esp + 0x2c], 0x100000
je case.0x52bb40.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 0x52dc88
mov eax, dword [esp + 0x5c]
mov edi, eax
cmp eax, edx
jb 0x52beb1
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 0x52b4e0
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 0x52b4e0
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.0052aa50
add esp, 0x18
test eax, eax
je 0x52bdd1
cmp dword [esp + 0x98], 0
je 0x52bc30
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 0x52b4e0
mov edi, dword [esp + 0xa8]
mov edx, dword [esp + 0x10]
cmp edi, edx
jae 0x52bdda
movzx eax, word [edi]
cmp eax, 0x7b
je 0x52bca5
cmp eax, 0x3c
je 0x52bd25
cmp eax, 0x27
jne 0x52bdda
cmp eax, 0x27
mov ebp, 0x7d
mov eax, 0x27
cmove ebp, eax
cmp ebx, 0x1b
jne 0x52bd4a
cmp ebp, 0x7d
je 0x52bd4a
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.0052f420
add esp, 0x1c
test eax, eax
je 0x52bd3a
mov ecx, dword [esp + 0x24]
mov edx, dword [esp + 0x10]
cmp ecx, edx
jae 0x52bd2c
movzx eax, word [ecx]
cmp eax, ebp
jne 0x52bd2c
mov eax, dword [esp + 0x3c]
mov edi, ecx
mov ebp, dword [esp + 0xb4]
mov ecx, edx
jmp 0x52d697
mov ebp, 0x3e
jmp 0x52bcb5
mov ecx, 0x9d
mov dword [esp + 0x28], ecx
jmp 0x52bb65
mov ecx, dword [esp + 0x28]
test ecx, ecx
jne 0x52bb61
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.0052f1d0
add esp, 0x24
test eax, eax
je 0x52bdd1
cmp ebx, 0x1c
je 0x52bd8e
mov eax, 0x80210000
cmp ebp, 0x7d
jne 0x52bd93
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 0x52b4e0
mov ecx, dword [esp + 0x28]
jmp 0x52bb5a
cmp ebx, 0x1b
mov ecx, 0xa9
mov eax, 0x9d
cmove ecx, eax
mov dword [esp + 0x28], ecx
jmp 0x52bb65
test dword [esp + 0x2c], 0x20000
mov dword [esp + 0x20], 1
je case.0x52bb40.13
cmp ebx, 7
je 0x52be1d
cmp ebx, 9
je 0x52be1d
mov eax, 0x8018000f
cmp ebx, 0xb
jne 0x52be22
mov eax, 0x80180010
mov dword [esi], eax
add ebx, 0xfffffffa
add esi, 4
mov dword [esp + 0x1c], esi
cmp ebx, 5
ja case.default.0x52be37
jmp dword [ebx*4 + 0x52dd98]
mov dword [esi], 0x3000d
jmp 0x52bbbc
mov dword [esi], 0x70000
jmp 0x52bbbc
mov dword [esi], 0x90000
jmp 0x52bbbc
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 0x52bb8a
cmp dword [ebp + ebx*4 + 0x2c], 0xffffffff
jne 0x52bb93
mov dword [ebp + ebx*4 + 0x2c], ecx
jmp 0x52bb93
mov edi, dword [esp + 0xa8]
mov ecx, dword [esp + 0x4c]
jmp 0x52bb8a
cmp dword [esp + 0x44], 0
lea edi, [eax + 2]
movzx ecx, word [eax]
je 0x52bb83
mov ebp, dword [esp + 0xb4]
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x52bb8a
movzx eax, word [edi]
and ecx, 0x3ff
shl ecx, 0xa
and eax, 0x3ff
or ecx, eax
add ecx, 0x10000
add edi, 2
jmp 0x52bb8a
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 0x52b4e0
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 0x52b4e0
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 0x52b4e0
mov dword [esp + 0x58], 0x80340000
jmp 0x52bfd8
mov dword [esp + 0x58], 0x80370000
jmp 0x52bfd8
mov dword [esp + 0x58], 0x803a0000
jmp 0x52bfd8
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.0052f560
add esp, 0x14
test eax, eax
jne 0x52bfc9
mov ecx, dword [esp + 0x28]
test ecx, ecx
jne 0x52da82
mov edi, dword [esp + 0xa8]
mov dword [esp + 0x20], 1
jmp 0x52b60e
mov edi, dword [esp + 0xa8]
mov dword [esp + 0x58], 0x803d0000
test ebp, ebp
je 0x52da4e
cmp dword [esi - 4], 0x802a0000
lea ecx, [esi - 4]
jne 0x52c010
mov edx, dword [esp + 0x7c]
cmp ecx, edx
jb 0x52c000
mov eax, dword [ecx]
mov dword [ecx + 4], eax
sub ecx, 4
cmp ecx, edx
jae 0x52bff4
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 0x52b4e0
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 0x52b4e0
mov eax, ecx
mov dword [esp + 0x20], 1
sub eax, edi
and eax, 0xfffffffe
cmp eax, 0xc
jl 0x52c142
push 6
push 0x59d9d0
push edi
call fcn.0052f890
add esp, 0xc
test eax, eax
je 0x52c096
push 6
push str._:_:__
push edi
call fcn.0052f890
add esp, 0xc
test eax, eax
jne 0x52c13e
mov dword [esi], 0x80180005
lea eax, [esi + 8]
cmp word [edi + 4], 0x3c
jne 0x52c0af
mov dword [esi + 4], 0x80230000
jmp 0x52c0cc
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 0x52c107
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 0x52b4e0
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 0x52b4e0
mov ecx, dword [esp + 0x10]
cmp edi, ecx
jae 0x52c173
movzx eax, word [edi]
cmp eax, 0x3a
je 0x52c158
cmp eax, 0x2e
je 0x52c158
cmp eax, 0x3d
jne 0x52c173
lea eax, [esp + 0x5c]
push eax
push ecx
push edi
call fcn.005261b0
add esp, 0xc
test eax, eax
jne 0x52da5b
mov ecx, dword [esp + 0x10]
xor edx, edx
mov dword [esp + 0x24], edx
cmp edi, ecx
jae 0x52c276
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 0x52c1d7
mov eax, ebx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x52c1d7
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 0x52c234
mov ecx, dword [esp + 0x10]
cmp ebp, ecx
jae 0x52c1fb
cmp word [edi], 0x45
jne 0x52c1fb
mov eax, 2
lea edi, [eax + ebp]
mov dword [esp + 0xa8], edi
jmp 0x52c264
mov eax, ecx
sub eax, ebp
and eax, 0xfffffffe
cmp eax, 6
jl 0x52c272
push 3
push 0x59d9e0
push edi
call fcn.0052f890
mov edx, dword [esp + 0x30]
add esp, 0xc
mov ecx, dword [esp + 0x10]
test eax, eax
jne 0x52c272
mov eax, 6
lea edi, [eax + ebp]
mov dword [esp + 0xa8], edi
jmp 0x52c264
test dword [esp + 0x2c], 0x1000000
je 0x52c248
cmp ecx, 0x20
je 0x52c260
cmp ecx, 9
je 0x52c260
test edx, edx
jne 0x52c26e
cmp ecx, 0x5e
mov ecx, dword [esp + 0x10]
jne 0x52c272
mov edx, 1
mov dword [esp + 0x24], edx
jmp 0x52c264
mov ecx, dword [esp + 0x10]
cmp edi, ecx
jb 0x52c185
jmp 0x52c272
mov ecx, dword [esp + 0x10]
mov esi, dword [esp + 0x1c]
cmp ebx, 0x5d
jne 0x52c2ad
mov ebp, dword [esp + 0xb4]
test byte [ebp + 0x6c], 1
je 0x52c2ad
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 0x52b4e0
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 0x52c304
cmp ebx, 0x5c
jne 0x52c578
cmp edi, ecx
jae 0x52c578
cmp word [edi], 0x45
jne 0x52c578
mov dword [esp + 0x54], 0
add edi, 2
jmp 0x52c72d
test dword [esp + 0x2c], 0x1000000
je 0x52c320
cmp ebx, 0x20
je 0x52c72d
cmp ebx, 9
je 0x52c72d
cmp ebx, 0x5b
jne 0x52c492
mov eax, ecx
sub eax, edi
and eax, 0xfffffffe
cmp eax, 6
jl 0x52c578
movzx eax, word [edi]
cmp eax, 0x3a
je 0x52c34f
cmp eax, 0x2e
je 0x52c34f
cmp eax, 0x3d
jne 0x52c578
lea eax, [esp + 0x5c]
push eax
push ecx
push edi
call fcn.005261b0
add esp, 0xc
test eax, eax
je 0x52c574
mov dword [esp + 0x24], 0
cmp dword [esp + 0x20], ebp
je 0x52dacb
cmp word [edi], 0x3a
jne 0x52da75
add edi, 2
mov edx, edi
cmp word [edi], 0x5e
jne 0x52c396
add edi, 2
mov dword [esp + 0x24], ebp
mov edx, edi
mov ebp, dword [esp + 0x5c]
mov ecx, 0x59d710
sub ebp, edx
mov dword [esp + 0x30], ecx
sar ebp, 1
xor ebx, ebx
nop dword [eax]
movzx eax, byte [ebx + 0x59d764]
cmp ebp, eax
jne 0x52c3d0
push ebp
push ecx
push edx
call fcn.0052f890
add esp, 0xc
test eax, eax
je 0x52c3f2
mov ecx, dword [esp + 0x30]
mov edx, edi
movzx eax, byte [ebx + 0x59d764]
inc ecx
inc ebx
add ecx, eax
mov dword [esp + 0x30], ecx
cmp byte [ebx + 0x59d764], 0
jne 0x52c3b0
mov ecx, 0x82
jmp 0x52dc88
test ebx, ebx
js 0x52c3e8
mov edi, dword [esp + 0x5c]
mov eax, dword [esp + 0x10]
add edi, 4
add eax, 0xfffffffe
cmp edi, eax
jae 0x52c419
cmp word [edi], 0x2d
jne 0x52c419
cmp word [edi + 2], 0x5d
jne 0x52dacb
xor edx, edx
test dword [esp + 0x2c], 0x20000
mov dword [esp + 0x20], edx
je 0x52c479
mov eax, dword [ebx*8 + 0x5ff050]
mov edx, dword [ebx*8 + 0x5ff054]
test eax, eax
js 0x52c45e
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 0x52c72d
test edx, edx
mov edx, dword [esp + 0x20]
je 0x52c479
mov eax, dword [esp + 0x24]
xor eax, 1
sub eax, 0x7fe7ffee
mov dword [esi], eax
jmp 0x52c72a
mov eax, dword [esp + 0x24]
add eax, 0x801c
shl eax, 0x10
mov dword [esi], eax
mov dword [esi + 4], ebx
add esi, 8
jmp 0x52c72d
cmp ebx, 0x2d
jne 0x52c4b9
cmp edx, 2
jb 0x52c578
cmp edx, 3
mov eax, 0x801e0000
mov ecx, 0x801f0000
mov edx, ebp
cmove eax, ecx
mov dword [esi], eax
jmp 0x52c726
cmp ebx, 0x5c
jne 0x52c578
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.00525000
mov ecx, dword [esp + 0x48]
add esp, 0x20
mov ebx, eax
test ecx, ecx
je 0x52c552
test byte [esp + 0x78], 2
je 0x52da89
cmp edi, dword [esp + 0x10]
jb 0x52c517
mov ebx, 0x5c
jmp 0x52c572
cmp dword [esp + 0x44], 0
lea ecx, [edi + 2]
movzx ebx, word [edi]
mov edi, ecx
je 0x52c572
mov eax, ebx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x52c572
movzx eax, word [edi]
and ebx, 0x3ff
shl ebx, 0xa
lea edi, [ecx + 2]
and eax, 0x3ff
or ebx, eax
add ebx, 0x10000
jmp 0x52c572
cmp ebx, 0x1a
ja case.0x52c560.1
mov ebx, eax
movzx eax, byte [eax + 0x52ddc8]
jmp dword [eax*4 + 0x52ddb0]
mov edi, dword [esp + 0xa8]
mov ebx, dword [esp + 0x4c]
xor ebp, ebp
mov edx, dword [esp + 0x20]
cmp edx, 1
jne 0x52c721
cmp ebx, dword [esi - 8]
jne 0x52c6fa
sub esi, 4
xor edx, edx
mov dword [esp + 0x20], edx
jmp 0x52c72d
mov edi, dword [esp + 0xa8]
mov ebx, 8
xor ebp, ebp
jmp 0x52c574
mov dword [esp + 0x54], 1
mov edi, dword [esp + 0xa8]
mov edx, dword [esp + 0x20]
jmp 0x52c734
cmp dword [esp + 0x20], 1
je 0x52daba
xor edx, edx
lea ecx, [ebx - 6]
mov dword [esp + 0x20], edx
cmp ecx, 0xf
ja case.0x52c5e4.13
movzx eax, byte [ecx + 0x52ddf8]
jmp dword [eax*4 + 0x52dde4]
lea eax, [ebx - 0x7fe80000]
mov dword [esi], eax
add esi, 4
jmp case.default.0x52c63c
test dword [esp + 0x2c], 0x20000
jne 0x52c615
lea eax, [ebx - 0x7fe80000]
mov dword [esi], eax
add esi, 4
jmp case.default.0x52c63c
cmp ebx, 7
je 0x52c629
cmp ebx, 9
je 0x52c629
mov eax, 0x8018000f
cmp ebx, 0xb
jne 0x52c62e
mov eax, 0x80180010
mov dword [esi], eax
add esi, 4
cmp ecx, 5
ja case.default.0x52c63c
jmp dword [ecx*4 + 0x52de08]
mov dword [esi], 0x3000d
add esi, 4
jmp case.default.0x52c63c
mov dword [esi], 0x70000
add esi, 4
jmp case.default.0x52c63c
mov dword [esi], 0x90000
add esi, 4
jmp case.default.0x52c63c
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.0052aa50
add esp, 0x18
test eax, eax
je 0x52dbec
cmp dword [esp + 0x9c], 0
je 0x52c6b4
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 0x52c734
cmp word [edi], 0x2d
jne 0x52c734
cmp word [edi + 2], 0x5d
jne 0x52dad2
jmp 0x52c734
jb 0x52dadc
test ebp, ebp
jne 0x52c714
cmp dword [esi - 4], 0x801f0000
jne 0x52c714
mov dword [esi - 4], 0x801e0000
mov dword [esi], ebx
add esi, 4
xor edx, edx
mov dword [esp + 0x20], edx
jmp 0x52c72d
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 0x52dae9
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 0x52c78f
mov eax, ebx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x52c78f
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 0x52c2d0
test eax, eax
jne 0x52c2d0
cmp edx, 1
jne 0x52c7b4
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 0x52b4e0
cmp edi, ecx
jae 0x52dc83
movzx eax, word [edi]
cmp eax, 0x3f
je 0x52cc06
mov edx, dword [esp + 0x14]
mov ebp, dword [esp + 0xb4]
cmp eax, 0x2a
je 0x52c84b
inc edx
test dword [esp + 0x2c], 0x2000
mov dword [esp + 0x14], edx
jne 0x52c834
mov ecx, dword [ebp + 0x74]
cmp ecx, 0xffff
jae 0x52dbce
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 0x52b4d9
mov ecx, 0x801a0000
mov dword [esi], ecx
add esi, 4
mov ecx, dword [esp + 0x10]
mov dword [esp + 0x1c], esi
jmp 0x52b4d9
mov ebx, dword [esp + 0x18]
mov eax, ecx
sub eax, edi
and eax, 0xfffffffe
cmp eax, 2
jle 0x52b4e0
movzx ecx, word [edi + 2]
mov edx, dword [esp + 0x14]
cmp ecx, 0x29
je 0x52b4c4
cmp ecx, 0xff
ja 0x52ca7e
mov eax, dword [ebp + 0x10]
test byte [ecx + eax], 4
je 0x52ca7e
mov ebx, dword [esp + 0x10]
lea eax, [esp + 0x28]
push ebp
push eax
lea eax, [esp + 0x3c]
mov dword [esp + 0x38], 0x59d5b0
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.0052f1d0
add esp, 0x24
test eax, eax
je 0x52dbec
mov edi, dword [esp + 0xa8]
mov dword [esp + 0x40], edi
cmp edi, ebx
jae 0x52db1d
cmp word [edi], 0x3a
jne 0x52db1d
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 + 0x59d688]
jne 0x52c911
push edi
push esi
push dword [esp + 0x58]
call fcn.0052f890
add esp, 0xc
test eax, eax
je 0x52c925
inc esi
add esi, dword [ebx*8 + 0x59d688]
inc ebx
mov dword [esp + 0x3c], ebx
mov ebp, ebx
cmp ebx, 0x11
jl 0x52c8f6
mov esi, dword [esp + 0x1c]
mov edi, dword [esp + 0x40]
cmp ebp, 0x11
jge 0x52db16
mov edx, dword [ebx*8 + 0x59d68c]
mov ebx, dword [esp + 0x24]
test ebx, ebx
jle 0x52c956
lea eax, [edx + 0x7fdd0000]
cmp eax, 0x30000
ja 0x52daf3
cmp edx, 0x80250000
ja 0x52c9c7
je 0x52c9f2
cmp edx, 0x80230000
ja 0x52c9b1
je 0x52d2bf
cmp edx, 0x80020000
je case.0x52cc30.62
cmp edx, 0x80220000
jne 0x52c9bd
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 0x52b4d9
cmp edx, 0x80240000
je 0x52d2f1
mov ecx, 0xbd
jmp 0x52dc88
cmp edx, 0x80280000
ja 0x52c9fa
je 0x52c9f2
cmp edx, 0x80260000
je 0x52c9f2
cmp edx, 0x80270000
jne 0x52c9bd
mov ebp, dword [esp + 0xb4]
add edi, 2
mov dword [esi], edx
jmp 0x52d377
sub edi, 2
jmp 0x52d34a
cmp edx, 0x8fff0000
jne 0x52c9bd
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 0x52ca3a
mov ebp, dword [esp + 0xb4]
mov edx, dword [ebp + 0x14]
mov dword [esp + 0x38], edx
jmp 0x52ca55
add edx, 0xc
mov dword [esp + 0x38], edx
cmp edx, dword [esp + 0x84]
jae 0x52dc14
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 0x52b4e0
mov ebx, dword [esp + 0x10]
lea eax, [esp + 0x28]
push ebp
push eax
lea eax, [esp + 0x3c]
mov dword [esp + 0x84], 0x59d4e8
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.0052f1d0
add esp, 0x24
test eax, eax
je 0x52dbec
mov edi, dword [esp + 0xa8]
mov dword [esp + 0x40], edi
cmp edi, ebx
jae 0x52dc3a
movzx eax, word [edi]
cmp eax, 0x3a
je 0x52cae5
cmp eax, 0x29
jne 0x52dc3a
mov edi, dword [esp + 0x7c]
xor ebx, ebx
mov dword [esp + 0x3c], ebx
xor esi, esi
mov ebp, 0x59d518
mov eax, dword [esp + 0x34]
cmp eax, dword [ebp]
jne 0x52cb11
push eax
push edi
push dword [esp + 0x58]
call fcn.0052f890
add esp, 0xc
test eax, eax
je 0x52cb24
inc edi
inc ebx
add edi, dword [ebp]
mov esi, ebx
add ebp, 0xc
mov dword [esp + 0x3c], ebx
cmp ebx, 9
jl 0x52caf6
mov edi, dword [esp + 0x40]
cmp esi, 9
mov esi, dword [esp + 0x1c]
jge 0x52dc3a
cmp word [edi], 0x3a
jne 0x52cb4b
lea eax, [edi + 2]
cmp eax, dword [esp + 0x10]
jae 0x52cb4b
cmp word [eax], 0x29
cmove edi, eax
lea ecx, [ebx + ebx*2]
mov ebx, dword [ecx*4 + 0x59d520]
test ebx, ebx
jle 0x52cb63
cmp word [edi], 0x3a
jne 0x52db27
mov ecx, dword [ecx*4 + 0x59d51c]
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 0x52cbe6
test ebx, ebx
jns 0x52cb9d
mov dword [esp + 0x80], ecx
mov eax, 0x80290000
jmp 0x52cbaf
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 0x52b4e0
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 0x52b4e0
add edi, 2
mov dword [esp + 0xa8], edi
mov edx, edi
cmp edi, ecx
jae 0x52dc83
movzx ecx, word [edi]
lea eax, [ecx - 0x21]
cmp eax, 0x31
ja case.0x52cc30.34
movzx eax, byte [eax + 0x52de58]
jmp dword [eax*4 + 0x52de20]
mov ecx, dword [esp + 0x10]
add edi, 2
mov dword [esp + 0xa8], edi
cmp edi, ecx
jae 0x52dc83
movzx eax, word [edi]
cmp eax, 0x3c
jne 0x52cc5f
mov eax, 0x3e
jmp 0x52d3dc
cmp eax, 0x3e
je 0x52cd23
mov ebp, dword [esp + 0xb4]
cmp eax, 0x3d
jne 0x52db31
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.0052f1d0
add esp, 0x24
test eax, eax
je 0x52dbec
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 0x52bc4d
mov ecx, dword [esp + 0x10]
xor eax, eax
add edi, 2
mov dword [esp + 0x3c], eax
cmp edi, ecx
jae 0x52db3b
cmp word [edi], 0x29
jne 0x52db3b
mov ebp, dword [esp + 0xb4]
jmp 0x52d697
mov edx, dword [esp + 0x10]
mov eax, edx
sub eax, edi
and eax, 0xfffffffe
cmp eax, 4
jl 0x52cd15
movzx eax, word [edi + 2]
cmp eax, 0x30
jb 0x52cd15
cmp eax, 0x39
jbe 0x52d620
mov ecx, 0x81
jmp 0x52dc88
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.0052f1d0
add esp, 0x24
test eax, eax
je 0x52dbec
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 0x52bc4d
mov ebp, dword [esp + 0x10]
lea edx, [edi + 2]
mov edi, edx
cmp edx, ebp
jae 0x52dc83
mov eax, dword [esp + 0x24]
mov ecx, dword [esp + 0x18]
dec eax
mov dword [esp + 0x6c], eax
test ecx, ecx
je 0x52cdb4
test byte [esp + 0x2c], 4
je 0x52cdb4
lea eax, [esi - 0x10]
cmp ecx, eax
jne 0x52cdb4
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 0x52ce62
cmp ebx, 0x30
jb 0x52cde0
cmp ebx, 0x39
jbe 0x52ce62
mov ecx, dword [0x59db4c]
xor eax, eax
mov dword [esp + 0x3c], eax
test ecx, ecx
je 0x52ce04
cmp ebx, ecx
je 0x52ce0e
mov ecx, dword [eax*4 + 0x59db50]
inc eax
mov dword [esp + 0x3c], eax
test ecx, ecx
jne 0x52cdf0
mov ecx, 0xb6
jmp 0x52dc88
mov ecx, dword [eax*4 + 0x59db28]
test ecx, ecx
je 0x52ce04
mov dword [esi], 0x80070000
nop
add edi, 2
cmp edi, ebp
jae 0x52db45
movzx eax, word [edi]
cmp eax, ecx
jne 0x52ce20
add edi, 2
cmp edi, ebp
jae 0x52ce40
movzx eax, word [edi]
cmp eax, ecx
je 0x52ce20
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 0x52cea1
xor ebx, ebx
mov dword [esi], 0x80060000
add esi, 0xc
nop dword [eax]
movzx eax, word [edi]
mov ecx, edx
cmp eax, 0x30
jb 0x52ce9f
cmp eax, 0x39
ja 0x52ce9f
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 0x52db51
mov edx, edi
cmp edi, ebp
jb 0x52ce70
mov dword [esi], ebx
cmp ecx, ebp
jae 0x52db5b
cmp word [edi], 0x29
jne 0x52db5b
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 0x52b4e0
mov ecx, dword [esp + 0x10]
add edi, 2
mov dword [esp + 0xa8], edi
cmp edi, ecx
jae 0x52dc83
movzx eax, word [edi]
inc dword [esp + 0x14]
cmp eax, 0x3f
je 0x52d267
cmp eax, 0x2a
je 0x52d267
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.0052f420
add esp, 0x1c
test eax, eax
je 0x52cf7d
mov ecx, dword [esp + 0x3c]
mov edi, dword [esp + 0xa8]
test ecx, ecx
jle 0x52db65
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 0x52d23a
mov ecx, dword [esp + 0x28]
test ecx, ecx
jne 0x52daae
mov ecx, dword [esp + 0x10]
mov ebp, ecx
mov ebx, dword [esp + 0xa8]
sub ebp, ebx
sar ebp, 1
cmp ebp, 0xa
jl 0x52d0cf
push 7
push str.VERSION
push ebx
call fcn.0052f890
add esp, 0xc
test eax, eax
jne 0x52d0cb
cmp word [ebx + 0xe], 0x29
lea edi, [ebx + 0xe]
je 0x52d0cb
xor ebp, ebp
xor ebx, ebx
cmp word [edi], 0x3e
mov eax, edi
mov dword [esp + 0x30], ebp
jne 0x52cfe1
add edi, 2
lea ebp, [ebx + 1]
mov eax, edi
cmp word [edi], 0x3d
jne 0x52db6f
lea edi, [eax + 2]
movzx eax, word [edi]
mov dword [esp + 0xa8], edi
cmp eax, 0x30
jb 0x52db6f
cmp eax, 0x39
ja 0x52db6f
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.0052f420
add esp, 0x1c
test eax, eax
je 0x52dbe5
mov edi, dword [esp + 0xa8]
mov edx, dword [esp + 0x10]
cmp edi, edx
jae 0x52db6f
cmp word [edi], 0x2e
jne 0x52d0b1
add edi, 2
cmp edi, edx
jae 0x52db6f
movzx eax, word [edi]
cmp eax, 0x30
jb 0x52db6f
cmp eax, 0x39
ja 0x52db6f
sub eax, 0x30
add edi, 2
lea ebx, [eax + eax*4]
add ebx, ebx
cmp edi, edx
jae 0x52db6f
movzx eax, word [edi]
cmp eax, 0x30
jb 0x52d0a7
cmp eax, 0x39
ja 0x52d0a7
add eax, 0xffffffd0
lea ecx, [edi + 2]
add ebx, eax
mov edi, ecx
cmp ecx, edx
jae 0x52db6f
cmp word [edi], 0x29
jne 0x52db6f
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 0x52d233
mov ecx, dword [esp + 0x10]
movzx eax, word [ebx]
mov dword [esp + 0x24], 0
cmp eax, 0x52
jne 0x52d0fc
cmp ebp, 1
jle 0x52d117
cmp word [ebx + 2], 0x26
lea eax, [ebx + 2]
jne 0x52d117
mov ebx, 1
mov dword [esp + 0xa8], eax
jmp 0x52d125
cmp eax, 0x3c
jne 0x52d10a
mov ebx, dword [esp + 0x24]
lea edi, [eax + 2]
jmp 0x52d12a
cmp eax, 0x27
jne 0x52d117
mov ebx, dword [esp + 0x24]
mov edi, eax
jmp 0x52d12a
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.0052f1d0
add esp, 0x24
test eax, eax
je 0x52dbec
mov ebp, dword [esp + 0x34]
test ebx, ebx
je 0x52d181
mov edi, dword [esp + 0xa8]
mov dword [esi], 0x80130000
sub edi, 2
jmp 0x52d21c
cmp edi, 0x29
jne 0x52d20f
mov ebx, dword [esp + 0x50]
cmp ebp, 6
jne 0x52d1bd
push 6
push str.DEFINE
push ebx
call fcn.0052f890
add esp, 0xc
test eax, eax
jne 0x52d1bd
mov eax, 0x80100000
mov dword [esi], eax
mov edi, dword [esp + 0xa8]
sub edi, 2
jmp 0x52d21c
mov eax, 1
mov dword [esp + 0x3c], eax
mov ecx, eax
cmp ebp, eax
jle 0x52d1ed
mov edi, eax
nop
movzx edx, word [ebx + eax*2]
mov ecx, edi
cmp edx, 0x30
jb 0x52d1ed
cmp edx, 0x39
ja 0x52d1ed
inc eax
mov dword [esp + 0x3c], eax
mov ecx, eax
mov edi, ecx
cmp eax, ebp
jl 0x52d1d0
cmp word [ebx], 0x52
jne 0x52d1fc
mov eax, 0x80140000
cmp ecx, ebp
jge 0x52d201
mov eax, 0x80110000
mov dword [esi], eax
mov edi, dword [esp + 0xa8]
sub edi, 2
jmp 0x52d21c
mov edi, dword [esp + 0xa8]
mov dword [esi], 0x80110000
mov eax, dword [esi]
add esi, 4
cmp eax, 0x80100000
je 0x52d22d
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 0x52db79
cmp word [edi], 0x29
jne 0x52db79
mov ebx, dword [esp + 0x18]
add edi, 2
mov edx, dword [esp + 0x14]
add esi, 4
mov dword [esp + 0x1c], esi
jmp 0x52b4e0
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 0x52b4e0
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 0x52b4d9
mov ebx, dword [esp + 0x24]
mov ebp, dword [esp + 0xb4]
add edi, 2
mov dword [esi], 0x80230000
jmp 0x52d377
mov ebx, dword [esp + 0x24]
mov ebp, dword [esp + 0xb4]
add edi, 2
mov dword [esi], 0x80270000
jmp 0x52d377
mov ebx, dword [esp + 0x24]
mov ebp, dword [esp + 0xb4]
add edi, 2
mov dword [esi], 0x80240000
jmp 0x52d377
mov eax, dword [esp + 0x10]
sub eax, edi
and eax, 0xfffffffe
cmp eax, 2
jle 0x52cc55
movzx eax, word [edi + 2]
cmp eax, 0x3d
je 0x52d341
cmp eax, 0x21
je 0x52d32f
cmp eax, 0x2a
jne 0x52cc55
cmp eax, 0x21
mov edx, 0x80280000
mov eax, 0x80260000
cmove edx, eax
jmp 0x52d346
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 0x52d3ce
mov edx, dword [esp + 0x38]
test edx, edx
jne 0x52d39c
mov edx, dword [ebp + 0x14]
mov dword [esp + 0x38], edx
jmp 0x52d3b0
add edx, 0xc
mov dword [esp + 0x38], edx
cmp edx, dword [esp + 0x84]
jae 0x52dc14
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 0x52b4d9
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.0052f1d0
add esp, 0x24
test eax, eax
je 0x52dbec
mov eax, dword [ebp + 0x74]
cmp eax, 0xffff
jae 0x52dbc7
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 0x52dbb6
mov ecx, dword [esp + 0x34]
movzx eax, word [ebp + 0x5a]
add ecx, 2
cmp ecx, eax
mov ecx, dword [esp + 0x34]
jbe 0x52d469
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 0x52d4fa
movzx eax, word [edi + 8]
cmp ecx, eax
jne 0x52d4d1
push ecx
push dword [edi]
push dword [esp + 0x58]
call fcn.0052f850
add esp, 0xc
test eax, eax
jne 0x52d4d1
mov ecx, dword [esp + 0xb4]
mov eax, dword [edi + 4]
cmp eax, dword [ecx + 0x74]
je 0x52d4fa
test byte [esp + 0x2c], 0x40
je 0x52db83
mov eax, 1
mov word [edi + 0xa], ax
mov dword [esp + 0x30], eax
mov dword [ecx + 0xbc], eax
jmp 0x52d4e4
mov ecx, dword [esp + 0xb4]
mov eax, dword [edi + 4]
cmp eax, dword [ecx + 0x74]
je 0x52db94
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 0x52d487
mov ebp, dword [esp + 0xb4]
movzx ecx, word [ebp + 0x58]
mov edx, ecx
cmp ebx, edx
jl case.default.0x52be37
mov eax, dword [ebp + 0x68]
cmp edx, eax
jb 0x52d56e
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 0x52dba5
mov eax, dword [ebp + 0x68]
lea eax, [eax + eax*2]
shl eax, 2
push eax
push dword [ebp + 0x64]
push edi
call fcn.00562cb0
add esp, 0xc
cmp dword [ebp + 0x68], 0x14
jbe 0x52d564
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 0x52b4e0
cmp ecx, 0x2d
jne 0x52d5f4
mov edx, dword [esp + 0x10]
mov eax, edx
sub eax, edi
and eax, 0xfffffffe
cmp eax, 2
jle 0x52d5f4
movzx eax, word [edi + 2]
cmp eax, 0x30
jb 0x52d5f4
cmp eax, 0x39
jbe 0x52d620
mov eax, dword [esp + 0x14]
mov edx, dword [esp + 0x38]
inc eax
mov dword [esp + 0x14], eax
test edx, edx
jne 0x52d6cb
mov ebp, dword [esp + 0xb4]
mov edx, dword [ebp + 0x14]
mov dword [esp + 0x38], edx
jmp 0x52d6e6
mov edx, dword [esp + 0x10]
cmp ecx, 0x30
jb 0x52d636
cmp ecx, 0x39
ja 0x52d636
mov ebp, dword [esp + 0xb4]
or eax, 0xffffffff
jmp 0x52d640
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.0052f420
add esp, 0x1c
test eax, eax
je 0x52dbec
mov eax, dword [esp + 0x3c]
mov edi, dword [esp + 0xa8]
test eax, eax
js 0x52dbd8
mov ecx, dword [esp + 0x10]
cmp edi, ecx
jae 0x52dc83
cmp word [edi], 0x29
jne 0x52dc83
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 0x52b4e0
add edx, 0xc
mov dword [esp + 0x38], edx
cmp edx, dword [esp + 0x84]
jae 0x52dc14
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 0x52d744
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 0x52b4e0
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 0x52d77e
and dword [esp + 0x2c], 0xfeffdb57
add edi, 2
mov dword [esp + 0x24], eax
mov ecx, edi
cmp ecx, dword [esp + 0x10]
jae 0x52d855
mov edx, ecx
nop word [eax + eax]
movzx eax, word [edi]
mov ecx, edx
cmp eax, 0x29
je 0x52d84d
cmp eax, 0x3a
je 0x52d84d
sub eax, 0x2d
lea edi, [edx + 2]
cmp eax, 0x4b
ja case.0x52d7bd.46
movzx eax, byte [eax + 0x52deb0]
jmp dword [eax*4 + 0x52de8c]
cmp dword [esp + 0x24], ebp
je 0x52dbfc
lea ebx, [esp + 0x60]
mov dword [esp + 0x24], ebp
mov ecx, edi
jmp 0x52d841
mov eax, dword [esp + 0xb4]
mov ecx, edi
or dword [ebx], 0x40
or dword [eax + 0x70], 0x400
jmp 0x52d841
or dword [ebx], 8
mov ecx, edi
jmp 0x52d841
or dword [ebx], 0x400
mov ecx, edi
jmp 0x52d841
or dword [ebx], 0x2000
mov ecx, edi
jmp 0x52d841
or dword [ebx], 0x20
mov ecx, edi
jmp 0x52d841
or dword [ebx], 0x40000
mov ecx, edi
jmp 0x52d841
mov eax, dword [ebx]
mov ecx, edi
or eax, 0x80
mov dword [ebx], eax
cmp edi, dword [esp + 0x10]
jae 0x52d841
cmp word [edi], 0x78
jne 0x52d841
or eax, 0x1000000
lea ecx, [edi + 2]
mov dword [ebx], eax
mov edi, ecx
mov edx, ecx
cmp edi, dword [esp + 0x10]
jb 0x52d790
mov ebp, dword [esp + 0x30]
mov edx, dword [esp + 0x60]
mov eax, ebp
and eax, 0x1000080
cmp eax, 0x80
je 0x52d867
test dl, dl
jns 0x52d86d
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 0x52dc83
mov ax, word [edi]
lea edi, [ecx + 2]
mov ebp, dword [esp + 0xb4]
cmp ax, 0x29
jne 0x52d8c3
mov eax, dword [esp + 0xa0]
mov edx, dword [esp + 0x38]
movzx ecx, ax
mov dword [esp + 0x14], ecx
cmp edx, dword [ebp + 0x14]
jbe 0x52d8be
cmp word [edx - 0xc], cx
lea eax, [edx - 0xc]
jne 0x52d8be
mov dword [esp + 0x38], eax
jmp 0x52d8d0
mov word [edx], cx
jmp 0x52d8d0
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 0x52b4d9
mov dword [esi], 0x801b0000
mov dword [esi + 4], ebx
add esi, 8
mov ebx, dword [esp + 0x18]
mov dword [esp + 0x1c], esi
jmp 0x52b4e0
mov edx, dword [esp + 0x38]
mov ebp, dword [esp + 0xb4]
test edx, edx
je 0x52d92f
mov ecx, dword [esp + 0x14]
cmp word [edx], cx
jne 0x52d92f
test byte [edx + 6], 1
je 0x52d92f
movzx eax, word [edx + 4]
mov ecx, dword [ebp + 0x74]
cmp ecx, eax
jbe 0x52d928
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 0x52b4e0
mov edx, dword [esp + 0x38]
mov dword [esp + 0x20], 1
test edx, edx
je 0x52d9df
mov ecx, dword [esp + 0x14]
cmp word [edx], cx
jne 0x52d9df
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 0x52d9ab
movzx edx, word [edx + 4]
cmp edx, dword [ebp + 0x74]
jbe 0x52d9a7
mov dword [ebp + 0x74], edx
mov edx, dword [esp + 0x38]
movzx eax, word [edx + 6]
jmp 0x52d9ab
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 0x52d9c5
mov dword [esi], 0x80190000
add esi, 4
cmp edx, dword [ebp + 0x14]
jne 0x52d9d2
xor eax, eax
mov dword [esp + 0x38], eax
jmp 0x52d9e6
sub edx, 0xc
mov dword [esp + 0x20], ecx
mov dword [esp + 0x38], edx
jmp 0x52d9e6
mov ebp, dword [esp + 0xb4]
mov edx, dword [esp + 0x14]
test dx, dx
je 0x52dc1e
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 0x52b4d9
mov dword [esi], ebx
add esi, 4
mov dword [esp + 0x1c], esi
mov dword [esp + 0x20], 1
jmp 0x52b4ce
mov ecx, 0x8c
jmp 0x52dc8f
mov edi, dword [esp + 0x40]
mov ecx, 0xb0
add edi, 0xfffffffe
jmp 0x52dc8f
mov ecx, 0x76
jmp 0x52dc88
mov ecx, 0x6d
sub edi, 2
jmp 0x52dc88
movzx eax, word [edi]
xor ecx, ecx
mov edi, dword [esp + 0x40]
add edi, 0xfffffffe
cmp eax, 0x3a
setne cl
add ecx, 0x70
jmp 0x52dc88
mov ecx, 0x71
sub edi, 2
jmp 0x52dc88
mov ebp, dword [esp + 0xb4]
mov edi, dword [esp + 0xa8]
jmp 0x52dc8f
mov edi, dword [esp + 0xa8]
mov ecx, 0x6b
sub edi, 2
jmp 0x52dc8f
mov ecx, 0xab
mov edi, dword [esp + 0xa8]
jmp 0x52dc8f
mov edi, dword [esp + 0xa8]
mov ecx, 0x96
jmp 0x52dc8f
mov ebp, dword [esp + 0xb4]
mov ecx, 0x96
jmp 0x52dc8f
mov ecx, 0x6c
sub edi, 2
jmp 0x52dc88
mov ecx, 0x6a
jmp 0x52dc8f
cmp edx, 0x80270000
je 0x52db0c
mov ecx, 0x80
cmp edx, 0x80280000
jne 0x52dc88
mov ecx, 0xc6
jmp 0x52dc88
mov ebp, dword [esp + 0xb4]
mov ecx, 0xc3
jmp 0x52dc8f
mov ecx, 0xa6
jmp 0x52dc88
mov ecx, 0x8d
jmp 0x52dc8f
mov ecx, 0x9e
jmp 0x52dc88
mov ecx, 0xb5
mov edi, edx
jmp 0x52dc88
mov ecx, 0x8a
jmp 0x52dc88
mov ecx, 0x8b
jmp 0x52dc88
mov ecx, 0x73
jmp 0x52dc8f
mov ecx, 0xb3
jmp 0x52dc88
mov ecx, 0x7c
jmp 0x52dc8f
mov edi, dword [esp + 0xa8]
mov ecx, 0x8f
jmp 0x52dc88
mov edi, dword [esp + 0xa8]
mov ecx, 0xa5
jmp 0x52dc88
mov edi, dword [esp + 0xa8]
mov ecx, 0x79
jmp 0x52dc8f
mov edi, dword [esp + 0xa8]
mov ecx, 0x95
jmp 0x52dc8f
mov edi, dword [esp + 0xa8]
mov ecx, 0xc5
jmp 0x52dc8f
mov ecx, 0x73
sub edi, 2
jmp 0x52dc88
mov ebp, dword [esp + 0xb4]
mov edi, dword [esp + 0xa8]
mov ecx, dword [esp + 0x28]
jmp 0x52dc8f
mov ecx, 0xc2
mov edi, edx
jmp 0x52dc88
mov ecx, 0x6f
mov edi, edx
jmp 0x52dc88
mov ecx, 0xb8
jmp 0x52dc88
mov ecx, 0x7a
sub edi, 2
jmp 0x52dc88
mov ecx, 0x77
jmp 0x52dc8f
cmp dword [esp + 0x70], 0
je 0x52b3fc
mov ecx, 0xa0
jmp 0x52dc88
test byte [esp + 0x78], 4
je 0x52dc58
mov dword [ecx], 0x80190000
mov dword [ecx + 4], 0x80180005
add ecx, 8
cmp ecx, dword [esp + 0x8c]
jb 0x52dc68
mov ecx, 0xa3
jmp 0x52dc88
cmp word [esp + 0x14], 0
mov dword [ecx], SysReAllocString
jne 0x52dc83
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