Function at 0x52a020
Capabilities:
Resolve function by parsing pe exports

Disassembly:
push 0xffffffffffffffff
push 0x6b7b93
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x168
push ebx
push ebp
push esi
push edi
mov esi, ecx
xor ebx, ebx
xor edi, edi
lea ecx, [esp + 0x134]
mov dword [esp + 0x180], ebx
mov dword [esp + 0x30], edi
call fcn.0060d180
lea ecx, [esp + 0x2c]
mov byte [esp + 0x180], 1
call fcn.0060fe70
push 0x6c
push 0xf1
push 0x60
lea ecx, [esp + 0x164]
mov byte [esp + 0x18c], 2
call fcn.00548440
mov al, byte [esp + 0x13]
mov dword [esp + 0x18], ebx
mov byte [esp + 0x14], al
mov dword [esp + 0x1c], ebx
mov dword [esp + 0x20], ebx
push 6
push 0x70c07c
lea ecx, [esp + 0x3c]
mov byte [esp + 0x188], 4
call fcn.0060ff10
xor edx, edx
mov al, 0xae
mov dword [esp + 0x48], edx
mov cl, 0x20
mov dword [esp + 0x4c], edx
mov dl, 0x80
mov byte [esp + 0x180], 5
mov byte [esp + 0x3c], 8
mov byte [esp + 0x3d], al
mov byte [esp + 0x3e], 1
mov byte [esp + 0x3f], bl
mov byte [esp + 0x40], bl
mov byte [esp + 0x41], 3
mov byte [esp + 0x42], bl
mov byte [esp + 0x43], bl
mov byte [esp + 0x44], bl
mov byte [esp + 0x45], bl
mov byte [esp + 0x46], 1
mov byte [esp + 0x47], cl
mov byte [esp + 0x50], 8
mov byte [esp + 0x51], al
mov byte [esp + 0x52], 1
mov byte [esp + 0x53], bl
mov byte [esp + 0x54], bl
mov byte [esp + 0x55], bl
mov byte [esp + 0x56], bl
mov byte [esp + 0x57], bl
mov byte [esp + 0x58], bl
mov byte [esp + 0x59], bl
mov byte [esp + 0x5a], 8
mov byte [esp + 0x5b], al
mov byte [esp + 0x5c], 1
mov byte [esp + 0x5d], bl
mov byte [esp + 0x5e], bl
mov byte [esp + 0x5f], bl
mov byte [esp + 0x60], dl
mov byte [esp + 0x61], 0xff
mov byte [esp + 0x62], bl
mov byte [esp + 0x63], bl
mov byte [esp + 0x64], 8
mov byte [esp + 0x65], al
mov byte [esp + 0x66], 1
mov byte [esp + 0x67], bl
mov byte [esp + 0x68], bl
mov byte [esp + 0x69], bl
mov byte [esp + 0x6a], dl
mov dl, 0x40
mov byte [esp + 0x6b], bl
mov byte [esp + 0x6c], bl
mov byte [esp + 0x6d], bl
mov byte [esp + 0x6e], 8
mov byte [esp + 0x6f], al
mov byte [esp + 0x70], 1
mov byte [esp + 0x71], bl
mov byte [esp + 0x72], bl
mov byte [esp + 0x73], bl
mov byte [esp + 0x74], bl
mov byte [esp + 0x75], bl
mov byte [esp + 0x76], bl
mov byte [esp + 0x77], bl
mov byte [esp + 0x78], 8
mov byte [esp + 0x79], al
mov byte [esp + 0x7a], 1
mov byte [esp + 0x7b], bl
mov byte [esp + 0x7c], bl
mov byte [esp + 0x7d], bl
mov byte [esp + 0x7e], dl
mov byte [esp + 0x7f], 0xff
mov byte [esp + 0x80], bl
mov byte [esp + 0x81], bl
mov byte [esp + 0x82], 8
mov byte [esp + 0x83], al
mov byte [esp + 0x84], 1
mov byte [esp + 0x85], bl
mov byte [esp + 0x86], bl
mov byte [esp + 0x87], bl
mov byte [esp + 0x88], dl
mov byte [esp + 0x89], bl
mov byte [esp + 0x8a], bl
mov byte [esp + 0x8b], bl
mov byte [esp + 0x8c], 8
mov byte [esp + 0x8d], al
mov byte [esp + 0x8e], 1
mov byte [esp + 0x8f], bl
mov byte [esp + 0x90], bl
mov byte [esp + 0x91], bl
mov byte [esp + 0x92], bl
mov byte [esp + 0x93], bl
mov byte [esp + 0x94], bl
mov byte [esp + 0x95], bl
mov byte [esp + 0x96], 8
mov byte [esp + 0x97], al
mov byte [esp + 0x98], 1
mov byte [esp + 0x99], bl
mov byte [esp + 0x9a], bl
mov byte [esp + 0x9b], bl
mov byte [esp + 0x9c], cl
mov byte [esp + 0x9d], 0xff
mov byte [esp + 0x9e], bl
mov byte [esp + 0x9f], bl
mov byte [esp + 0xa0], 8
mov byte [esp + 0xa1], al
mov byte [esp + 0xa2], 1
mov byte [esp + 0xa3], bl
mov byte [esp + 0xa4], bl
mov byte [esp + 0xa5], bl
mov byte [esp + 0xa6], cl
mov byte [esp + 0xa7], bl
mov byte [esp + 0xa8], bl
mov byte [esp + 0xa9], bl
mov byte [esp + 0xaa], 8
mov byte [esp + 0xab], al
mov byte [esp + 0xac], 1
mov byte [esp + 0xad], bl
mov byte [esp + 0xae], bl
mov byte [esp + 0xaf], bl
mov byte [esp + 0xb0], bl
mov byte [esp + 0xb1], bl
mov byte [esp + 0xb2], bl
mov byte [esp + 0xb3], bl
mov byte [esp + 0xb4], 8
mov byte [esp + 0xb5], al
mov byte [esp + 0xb6], 1
mov byte [esp + 0xb7], bl
mov byte [esp + 0xb8], bl
mov byte [esp + 0xb9], bl
mov cl, 0x10
mov byte [esp + 0xbf], al
mov byte [esp + 0xc9], al
mov eax, dword [esi]
mov byte [esp + 0xba], cl
mov byte [esp + 0xc4], cl
mov ecx, esi
mov byte [esp + 0xbb], 0xff
mov byte [esp + 0xbc], bl
mov byte [esp + 0xbd], bl
mov byte [esp + 0xbe], 8
mov byte [esp + 0xc0], 1
mov byte [esp + 0xc1], bl
mov byte [esp + 0xc2], bl
mov byte [esp + 0xc3], bl
mov byte [esp + 0xc5], bl
mov byte [esp + 0xc6], bl
mov byte [esp + 0xc7], bl
mov byte [esp + 0xc8], 8
mov byte [esp + 0xca], 1
mov byte [esp + 0xcb], bl
mov byte [esp + 0xcc], bl
mov byte [esp + 0xcd], bl
mov byte [esp + 0xce], bl
mov byte [esp + 0xcf], bl
mov byte [esp + 0xd0], bl
mov byte [esp + 0xd1], bl
call dword [eax + 0x18]
test ax, ax
jne 0x52a4cb
lea ecx, [esp + 0x34]
mov byte [esp + 0x180], 4
call fcn.0060ffb0
mov eax, dword [esp + 0x18]
cmp eax, ebx
je 0x52a468
lea ecx, [eax - 1]
mov al, byte [eax - 1]
cmp al, bl
je 0x52a45f
cmp al, 0xff
je 0x52a45f
dec al
mov byte [ecx], al
jmp 0x52a468
push ecx
call fcn.00697880
add esp, 4
lea ecx, [esp + 0x158]
mov dword [esp + 0x18], ebx
mov dword [esp + 0x1c], ebx
mov dword [esp + 0x20], ebx
mov byte [esp + 0x180], 2
call fcn.00548470
lea ecx, [esp + 0x2c]
mov byte [esp + 0x180], 1
call fcn.0060ffb0
lea ecx, [esp + 0x134]
mov byte [esp + 0x180], bl
call fcn.0060d280
lea ecx, [esp + 0x188]
mov dword [esp + 0x180], 0xffffffff
call fcn.0060ffb0
xor ax, ax
jmp 0x52b248
push 5
lea ecx, [esp + 0x18c]
call fcn.00610190
push ecx
mov byte [esp + 0x17], al
mov ecx, esp
mov dword [esp + 0x3c], esp
push 6
push 0x703764
call fcn.0060ff10
lea ecx, [esp + 0xd8]
push ecx
call fcn.0060f170
add esp, 8
mov edx, dword [0x6ce1fc]
lea ecx, [esp + 0x14]
push edx
push ebx
push eax
mov byte [esp + 0x18c], 6
call fcn.004136a0
mov eax, dword [esp + 0xd8]
mov byte [esp + 0x180], 5
cmp eax, ebx
je 0x52a54a
lea ecx, [eax - 1]
mov al, byte [eax - 1]
cmp al, bl
je 0x52a541
cmp al, 0xff
je 0x52a541
dec al
mov byte [ecx], al
jmp 0x52a54a
push ecx
call fcn.00697880
add esp, 4
mov al, byte [esp + 0x13]
cmp al, 0x5a
je 0x52ac54
jbe 0x52b1b3
cmp al, 0x5e
ja 0x52b1b3
sub al, 0x5a
mov byte [esp + 0x13], bl
mov byte [esp + 0x38], al
push ecx
lea eax, [esp + 0x18c]
mov ecx, esp
mov dword [esp + 0x28], esp
push eax
call fcn.0060fe80
mov ecx, dword [0x71b93c]
call fcn.006206f0
mov esi, dword [esp + 0x30]
cmp si, bx
je 0x52aa59
cmp byte [0x71bb5c], bl
je 0x52a5b7
push ecx
mov ecx, esp
mov dword [esp + 0x28], esp
push 1
push 0x703848
call fcn.0060ff10
jmp 0x52a609
mov eax, dword [esp + 0x38]
sub esp, 0x24
and eax, 0xff
mov ecx, esp
movsx edx, si
lea eax, [eax + eax*2]
mov dword [esp + 0x48], esp
add eax, edx
push ebx
push 1
lea eax, [eax + eax*4]
lea edx, [esp + eax*2 + 0x5e]
push edx
push ecx
lea ecx, [esp + 0x18c]
call fcn.00548ea0
lea ecx, [esp + 0x158]
call fcn.0060d330
push ecx
lea ecx, [esp + 0x138]
mov eax, esp
mov dword [esp + 0x28], esp
push eax
call fcn.0060d6b0
lea ecx, [esp + 0x30]
call fcn.006101a0
lea ecx, [esp + 0x2c]
call fcn.00610330
test ax, ax
jle 0x52aa55
cmp si, 1
jne 0x52a765
push ecx
mov ecx, esp
mov dword [esp + 0x28], esp
push 6
push 0x70c16c
call fcn.0060ff10
lea ecx, [esp + 0xe8]
push ecx
call fcn.0060f170
add esp, 8
mov esi, eax
mov eax, dword [esi + 8]
mov ecx, dword [0x6ce1fc]
mov ebp, eax
mov byte [esp + 0x180], 0xb
cmp ecx, ebp
jae 0x52a66c
mov ebp, ecx
lea edx, [esp + 0x14]
cmp edx, esi
jne 0x52a68f
push ecx
push ebp
lea ecx, [esp + 0x1c]
call fcn.004140d0
push ebx
push ebx
lea ecx, [esp + 0x1c]
call fcn.004140d0
jmp 0x52a717
cmp ebp, ebx
jbe 0x52a6dc
cmp ebp, eax
jne 0x52a6dc
mov eax, dword [esi + 4]
cmp eax, ebx
jne 0x52a6a3
mov eax, 0x6ce1f8
cmp byte [eax - 1], 0xfe
jae 0x52a6dc
push 1
lea ecx, [esp + 0x18]
call fcn.004138a0
mov eax, dword [esi + 4]
cmp eax, ebx
jne 0x52a6c0
mov eax, 0x6ce1f8
mov dword [esp + 0x18], eax
mov ecx, dword [esi + 8]
mov dword [esp + 0x1c], ecx
mov esi, dword [esi + 0xc]
mov dword [esp + 0x20], esi
mov cl, byte [eax - 1]
inc cl
mov byte [eax - 1], cl
jmp 0x52a717
push 1
push ebp
lea ecx, [esp + 0x1c]
call fcn.00414210
test al, al
je 0x52a717
mov esi, dword [esi + 4]
cmp esi, ebx
jne 0x52a6f8
mov esi, 0x6ce1f8
mov edi, dword [esp + 0x18]
mov ecx, ebp
mov eax, ecx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov ecx, dword [esp + 0x18]
mov dword [esp + 0x1c], ebp
mov byte [ecx + ebp], bl
mov eax, dword [esp + 0xe8]
mov byte [esp + 0x180], 5
cmp eax, ebx
je 0x52a747
lea ecx, [eax - 1]
mov al, byte [eax - 1]
cmp al, bl
je 0x52a73e
cmp al, 0xff
je 0x52a73e
dec al
mov byte [ecx], al
jmp 0x52a747
push ecx
call fcn.00697880
add esp, 4
mov dword [esp + 0xe8], ebx
mov dword [esp + 0xec], ebx
mov dword [esp + 0xf0], ebx
mov byte [esp + 0x13], bl
jmp 0x52aa55
cmp si, 2
jne 0x52a8cb
push ecx
mov ecx, esp
mov dword [esp + 0x28], esp
push 6
push 0x70c164
call fcn.0060ff10
lea edx, [esp + 0xf8]
push edx
call fcn.0060f170
add esp, 8
mov esi, eax
mov eax, dword [esi + 8]
mov ecx, dword [0x6ce1fc]
mov ebp, eax
mov byte [esp + 0x180], 0xc
cmp ecx, ebp
jae 0x52a7ad
mov ebp, ecx
lea edx, [esp + 0x14]
cmp edx, esi
jne 0x52a7d0
push ecx
push ebp
lea ecx, [esp + 0x1c]
call fcn.004140d0
push ebx
push ebx
lea ecx, [esp + 0x1c]
call fcn.004140d0
jmp 0x52a87d
cmp ebp, ebx
jbe 0x52a843
cmp ebp, eax
jne 0x52a843
mov eax, dword [esi + 4]
cmp eax, ebx
jne 0x52a7e4
mov eax, 0x6ce1f8
cmp byte [eax - 1], 0xfe
jae 0x52a843
mov eax, dword [esp + 0x18]
cmp eax, ebx
je 0x52a80f
lea ecx, [eax - 1]
mov al, byte [eax - 1]
cmp al, bl
je 0x52a806
cmp al, 0xff
je 0x52a806
dec al
mov byte [ecx], al
jmp 0x52a80f
push ecx
call fcn.00697880
add esp, 4
mov dword [esp + 0x18], ebx
mov dword [esp + 0x1c], ebx
mov dword [esp + 0x20], ebx
mov eax, dword [esi + 4]
cmp eax, ebx
jne 0x52a827
mov eax, 0x6ce1f8
mov dword [esp + 0x18], eax
mov ecx, dword [esi + 8]
mov dword [esp + 0x1c], ecx
mov esi, dword [esi + 0xc]
mov dword [esp + 0x20], esi
mov cl, byte [eax - 1]
inc cl
mov byte [eax - 1], cl
jmp 0x52a87d
push 1
push ebp
lea ecx, [esp + 0x1c]
call fcn.00414210
test al, al
je 0x52a87d
mov esi, dword [esi + 4]
cmp esi, ebx
jne 0x52a85f
mov esi, 0x6ce1f8
mov edi, dword [esp + 0x18]
mov ecx, ebp
mov eax, ecx
push ebp
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
lea ecx, [esp + 0x18]
call fcn.004141f0
mov eax, dword [esp + 0xf8]
mov byte [esp + 0x180], 5
cmp eax, ebx
je 0x52a8ad
lea ecx, [eax - 1]
mov al, byte [eax - 1]
cmp al, bl
je 0x52a8a4
cmp al, 0xff
je 0x52a8a4
dec al
mov byte [ecx], al
jmp 0x52a8ad
push ecx
call fcn.00697880
add esp, 4
mov dword [esp + 0xf8], ebx
mov dword [esp + 0xfc], ebx
mov dword [esp + 0x100], ebx
mov byte [esp + 0x13], bl
jmp 0x52aa55
cmp si, 3
jne 0x52aa55
push ecx
mov ecx, esp
mov dword [esp + 0x28], esp
push 6
push 0x703764
call fcn.0060ff10
lea ecx, [esp + 0x128]
push ecx
call fcn.0060f170
add esp, 8
mov esi, eax
mov eax, dword [esi + 8]
mov edi, dword [0x6ce1fc]
mov ebp, eax
mov byte [esp + 0x180], 0xd
cmp edi, ebp
jae 0x52a913
mov ebp, edi
lea edx, [esp + 0x14]
cmp edx, esi
jne 0x52a984
cmp dword [esp + 0x1c], ebp
jae 0x52a926
call fcn.00697ab7
lea ecx, [esp + 0x14]
call fcn.00414980
mov eax, dword [esp + 0x1c]
sub eax, ebp
cmp eax, edi
jae 0x52a93b
mov edi, eax
cmp edi, ebx
jbe 0x52a974
mov ecx, dword [esp + 0x18]
sub eax, edi
add ecx, ebp
push eax
lea edx, [ecx + edi]
push edx
push ecx
call fcn.00698020
mov esi, dword [esp + 0x28]
add esp, 0xc
sub esi, edi
lea ecx, [esp + 0x14]
push ebx
push esi
call fcn.00414210
test al, al
je 0x52a974
push esi
lea ecx, [esp + 0x18]
call fcn.004141f0
push ebx
push ebx
lea ecx, [esp + 0x1c]
call fcn.004140d0
jmp 0x52aa0b
cmp ebp, ebx
jbe 0x52a9d1
cmp ebp, eax
jne 0x52a9d1
mov eax, dword [esi + 4]
cmp eax, ebx
jne 0x52a998
mov eax, 0x6ce1f8
cmp byte [eax - 1], 0xfe
jae 0x52a9d1
push 1
lea ecx, [esp + 0x18]
call fcn.004138a0
mov eax, dword [esi + 4]
cmp eax, ebx
jne 0x52a9b5
mov eax, 0x6ce1f8
mov dword [esp + 0x18], eax
mov ecx, dword [esi + 8]
mov dword [esp + 0x1c], ecx
mov esi, dword [esi + 0xc]
mov dword [esp + 0x20], esi
mov cl, byte [eax - 1]
inc cl
mov byte [eax - 1], cl
jmp 0x52aa0b
push 1
push ebp
lea ecx, [esp + 0x1c]
call fcn.00414210
test al, al
je 0x52aa0b
mov esi, dword [esi + 4]
cmp esi, ebx
jne 0x52a9ed
mov esi, 0x6ce1f8
mov edi, dword [esp + 0x18]
mov ecx, ebp
mov edx, ecx
push ebp
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
lea ecx, [esp + 0x18]
call fcn.004141f0
mov eax, dword [esp + 0x128]
mov byte [esp + 0x180], 5
cmp eax, ebx
je 0x52aa3b
lea ecx, [eax - 1]
mov al, byte [eax - 1]
cmp al, bl
je 0x52aa32
cmp al, 0xff
je 0x52aa32
dec al
mov byte [ecx], al
jmp 0x52aa3b
push ecx
call fcn.00697880
add esp, 4
mov dword [esp + 0x128], ebx
mov dword [esp + 0x12c], ebx
mov dword [esp + 0x130], ebx
mov byte [esp + 0x13], 1
mov dword [esp + 0x30], ebx
push 1
push ecx
mov ecx, esp
mov dword [esp + 0x2c], esp
push 6
push 0x70c16c
call fcn.0060ff10
mov ecx, dword [0x71b93c]
call fcn.00620870
push 1
push ecx
mov ecx, esp
mov dword [esp + 0x2c], esp
push 6
push 0x70c164
call fcn.0060ff10
mov ecx, dword [0x71b93c]
call fcn.00620870
push 1
push ecx
mov ecx, esp
mov dword [esp + 0x2c], esp
push 6
push 0x703774
call fcn.0060ff10
mov ecx, dword [0x71b93c]
call fcn.00620870
mov al, byte [esp + 0x14]
sub esp, 0x10
mov ebp, esp
mov dword [esp + 0x38], esp
mov byte [ebp], al
mov dword [ebp + 4], ebx
mov dword [ebp + 8], ebx
mov dword [ebp + 0xc], ebx
mov eax, dword [esp + 0x2c]
mov esi, dword [0x6ce1fc]
mov edi, eax
cmp esi, edi
mov dword [esp + 0x34], edi
jae 0x52aaec
mov edi, esi
mov dword [esp + 0x34], edi
lea ecx, [esp + 0x24]
cmp ebp, ecx
jne 0x52ab51
cmp edi, ebx
jbe 0x52aafd
call fcn.00697ab7
mov ecx, ebp
call fcn.00414980
mov eax, dword [ebp + 8]
sub eax, edi
cmp eax, esi
jae 0x52ab0f
mov esi, eax
cmp esi, ebx
jbe 0x52ab43
mov edx, dword [ebp + 4]
sub eax, esi
push eax
lea ecx, [edi + edx]
lea edx, [ecx + esi]
push edx
push ecx
call fcn.00698020
mov edi, dword [ebp + 8]
add esp, 0xc
sub edi, esi
mov ecx, ebp
push ebx
push edi
call fcn.00414210
test al, al
je 0x52ab43
push edi
mov ecx, ebp
call fcn.004141f0
push ebx
push ebx
mov ecx, ebp
call fcn.004140d0
jmp 0x52abd7
cmp edi, ebx
jbe 0x52ab9d
cmp edi, eax
jne 0x52ab9d
mov eax, dword [esp + 0x28]
cmp eax, ebx
jne 0x52ab66
mov eax, 0x6ce1f8
cmp byte [eax - 1], 0xfe
jae 0x52ab9d
push 1
mov ecx, ebp
call fcn.004138a0
mov eax, dword [esp + 0x28]
cmp eax, ebx
jne 0x52ab82
mov eax, 0x6ce1f8
mov dword [ebp + 4], eax
mov ecx, dword [esp + 0x2c]
mov dword [ebp + 8], ecx
mov edx, dword [esp + 0x30]
mov dword [ebp + 0xc], edx
mov cl, byte [eax - 1]
inc cl
mov byte [eax - 1], cl
jmp 0x52abd7
push 1
push edi
mov ecx, ebp
call fcn.00414210
test al, al
je 0x52abd7
mov esi, dword [esp + 0x28]
cmp esi, ebx
jne 0x52abb8
mov esi, 0x6ce1f8
mov eax, dword [esp + 0x34]
mov edi, dword [ebp + 4]
mov ecx, eax
push eax
mov edx, ecx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov ecx, ebp
call fcn.004141f0
push ecx
mov byte [esp + 0x194], 0xe
mov ecx, esp
mov dword [esp + 0x38], esp
push 6
push 0x70379c
call fcn.0060ff10
mov ecx, dword [0x71b93c]
mov byte [esp + 0x194], 5
call fcn.006208f0
mov ecx, dword [0x71b93c]
call fcn.00620cd0
movsx eax, ax
sub eax, ebx
je 0x52ac47
dec eax
je 0x52ac3a
dec eax
jne 0x52a56e
mov al, byte [esp + 0x13]
mov dword [esp + 0x30], 3
cmp al, bl
jne 0x52b1b3
jmp 0x52a56e
mov dword [esp + 0x30], 2
jmp 0x52a56e
mov dword [esp + 0x30], 1
jmp 0x52a56e
mov byte [esp + 0x13], bl
push ecx
lea eax, [esp + 0x18c]
mov ecx, esp
mov dword [esp + 0x2c], esp
push eax
call fcn.0060fe80
mov ecx, dword [0x71b93c]
call fcn.006206f0
cmp di, bx
je 0x52b0ba
cmp byte [0x71bb5c], bl
je 0x52ac9d
push ecx
mov ecx, esp
mov dword [esp + 0x2c], esp
push 1
push 0x703848
call fcn.0060ff10
jmp 0x52ace1
movsx eax, di
sub esp, 0x24
lea edx, [eax + eax*4]
mov ecx, esp
mov dword [esp + 0x4c], esp
push ebx
lea eax, [esp + edx*2 + 0x5a]
push 1
push eax
push ecx
lea ecx, [esp + 0x18c]
call fcn.00548ea0
lea ecx, [esp + 0x158]
call fcn.0060d330
push ecx
mov ecx, esp
mov dword [esp + 0x2c], esp
push ecx
lea ecx, [esp + 0x13c]
call fcn.0060d6b0
lea ecx, [esp + 0x30]
call fcn.006101a0
lea ecx, [esp + 0x2c]
call fcn.00610330
test ax, ax
jle 0x52b0b8
cmp di, 1
jne 0x52ae3c
push ecx
mov ecx, esp
mov dword [esp + 0x2c], esp
push 6
push 0x703784
call fcn.0060ff10
lea edx, [esp + 0x108]
push edx
call fcn.0060f170
add esp, 8
mov esi, eax
mov eax, dword [esi + 8]
mov ecx, dword [0x6ce1fc]
mov ebp, eax
mov byte [esp + 0x180], 7
cmp ecx, ebp
jae 0x52ad44
mov ebp, ecx
lea edx, [esp + 0x14]
cmp edx, esi
jne 0x52ad67
push ecx
push ebp
lea ecx, [esp + 0x1c]
call fcn.004140d0
push ebx
push ebx
lea ecx, [esp + 0x1c]
call fcn.004140d0
jmp 0x52adee
cmp ebp, ebx
jbe 0x52adb4
cmp ebp, eax
jne 0x52adb4
mov eax, dword [esi + 4]
cmp eax, ebx
jne 0x52ad7b
mov eax, 0x6ce1f8
cmp byte [eax - 1], 0xfe
jae 0x52adb4
push 1
lea ecx, [esp + 0x18]
call fcn.004138a0
mov eax, dword [esi + 4]
cmp eax, ebx
jne 0x52ad98
mov eax, 0x6ce1f8
mov dword [esp + 0x18], eax
mov ecx, dword [esi + 8]
mov dword [esp + 0x1c], ecx
mov esi, dword [esi + 0xc]
mov dword [esp + 0x20], esi
mov cl, byte [eax - 1]
inc cl
mov byte [eax - 1], cl
jmp 0x52adee
push 1
push ebp
lea ecx, [esp + 0x1c]
call fcn.00414210
test al, al
je 0x52adee
mov esi, dword [esi + 4]
cmp esi, ebx
jne 0x52add0
mov esi, 0x6ce1f8
mov edi, dword [esp + 0x18]
mov ecx, ebp
mov eax, ecx
push ebp
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
lea ecx, [esp + 0x18]
call fcn.004141f0
mov eax, dword [esp + 0x108]
mov byte [esp + 0x180], 5
cmp eax, ebx
je 0x52ae1e
lea ecx, [eax - 1]
mov al, byte [eax - 1]
cmp al, bl
je 0x52ae15
cmp al, 0xff
je 0x52ae15
dec al
mov byte [ecx], al
jmp 0x52ae1e
push ecx
call fcn.00697880
add esp, 4
mov dword [esp + 0x108], ebx
mov dword [esp + 0x10c], ebx
mov dword [esp + 0x110], ebx
mov byte [esp + 0x13], bl
jmp 0x52b0b8
cmp di, 2
jne 0x52af7c
push ecx
mov ecx, esp
mov dword [esp + 0x2c], esp
push 6
push 0x70377c
call fcn.0060ff10
lea ecx, [esp + 0x118]
push ecx
call fcn.0060f170
add esp, 8
mov esi, eax
mov eax, dword [esi + 8]
mov ecx, dword [0x6ce1fc]
mov ebp, eax
mov byte [esp + 0x180], 8
cmp ecx, ebp
jae 0x52ae84
mov ebp, ecx
lea edx, [esp + 0x14]
cmp edx, esi
jne 0x52aea7
push ecx
push ebp
lea ecx, [esp + 0x1c]
call fcn.004140d0
push ebx
push ebx
lea ecx, [esp + 0x1c]
call fcn.004140d0
jmp 0x52af2e
cmp ebp, ebx
jbe 0x52aef4
cmp ebp, eax
jne 0x52aef4
mov eax, dword [esi + 4]
cmp eax, ebx
jne 0x52aebb
mov eax, 0x6ce1f8
cmp byte [eax - 1], 0xfe
jae 0x52aef4
push 1
lea ecx, [esp + 0x18]
call fcn.004138a0
mov eax, dword [esi + 4]
cmp eax, ebx
jne 0x52aed8
mov eax, 0x6ce1f8
mov dword [esp + 0x18], eax
mov ecx, dword [esi + 8]
mov dword [esp + 0x1c], ecx
mov esi, dword [esi + 0xc]
mov dword [esp + 0x20], esi
mov cl, byte [eax - 1]
inc cl
mov byte [eax - 1], cl
jmp 0x52af2e
push 1
push ebp
lea ecx, [esp + 0x1c]
call fcn.00414210
test al, al
je 0x52af2e
mov esi, dword [esi + 4]
cmp esi, ebx
jne 0x52af10
mov esi, 0x6ce1f8
mov edi, dword [esp + 0x18]
mov ecx, ebp
mov eax, ecx
push ebp
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
lea ecx, [esp + 0x18]
call fcn.004141f0
mov eax, dword [esp + 0x118]
mov byte [esp + 0x180], 5
cmp eax, ebx
je 0x52af5e
lea ecx, [eax - 1]
mov al, byte [eax - 1]
cmp al, bl
je 0x52af55
cmp al, 0xff
je 0x52af55
dec al
mov byte [ecx], al
jmp 0x52af5e
push ecx
call fcn.00697880
add esp, 4
mov dword [esp + 0x118], ebx
mov dword [esp + 0x11c], ebx
mov dword [esp + 0x120], ebx
mov byte [esp + 0x13], bl
jmp 0x52b0b8
cmp di, 3
jne 0x52b0b8
push ecx
mov ecx, esp
mov dword [esp + 0x2c], esp
push 6
push 0x703764
call fcn.0060ff10
lea ecx, [esp + 0xd8]
push ecx
call fcn.0060f170
add esp, 8
mov esi, eax
mov eax, dword [esi + 8]
mov ecx, dword [0x6ce1fc]
mov ebp, eax
mov byte [esp + 0x180], 9
cmp ecx, ebp
jae 0x52afc4
mov ebp, ecx
lea edx, [esp + 0x14]
cmp edx, esi
jne 0x52afe7
push ecx
push ebp
lea ecx, [esp + 0x1c]
call fcn.004140d0
push ebx
push ebx
lea ecx, [esp + 0x1c]
call fcn.004140d0
jmp 0x52b06e
cmp ebp, ebx
jbe 0x52b034
cmp ebp, eax
jne 0x52b034
mov eax, dword [esi + 4]
cmp eax, ebx
jne 0x52affb
mov eax, 0x6ce1f8
cmp byte [eax - 1], 0xfe
jae 0x52b034
push 1
lea ecx, [esp + 0x18]
call fcn.004138a0
mov eax, dword [esi + 4]
cmp eax, ebx
jne 0x52b018
mov eax, 0x6ce1f8
mov dword [esp + 0x18], eax
mov ecx, dword [esi + 8]
mov dword [esp + 0x1c], ecx
mov esi, dword [esi + 0xc]
mov dword [esp + 0x20], esi
mov cl, byte [eax - 1]
inc cl
mov byte [eax - 1], cl
jmp 0x52b06e
push 1
push ebp
lea ecx, [esp + 0x1c]
call fcn.00414210
test al, al
je 0x52b06e
mov esi, dword [esi + 4]
cmp esi, ebx
jne 0x52b050
mov esi, 0x6ce1f8
mov edi, dword [esp + 0x18]
mov ecx, ebp
mov eax, ecx
push ebp
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
lea ecx, [esp + 0x18]
call fcn.004141f0
mov eax, dword [esp + 0xd8]
mov byte [esp + 0x180], 5
cmp eax, ebx
je 0x52b09e
lea ecx, [eax - 1]
mov al, byte [eax - 1]
cmp al, bl
je 0x52b095
cmp al, 0xff
je 0x52b095
dec al
mov byte [ecx], al
jmp 0x52b09e
push ecx
call fcn.00697880
add esp, 4
mov dword [esp + 0xd8], ebx
mov dword [esp + 0xdc], ebx
mov dword [esp + 0xe0], ebx
mov byte [esp + 0x13], 1
xor edi, edi
push 1
push ecx
mov ecx, esp
mov dword [esp + 0x30], esp
push 6
push 0x703784
call fcn.0060ff10
mov ecx, dword [0x71b93c]
call fcn.00620870
push 1
push ecx
mov ecx, esp
mov dword [esp + 0x30], esp
push 6
push 0x70377c
call fcn.0060ff10
mov ecx, dword [0x71b93c]
call fcn.00620870
push 1
push ecx
mov ecx, esp
mov dword [esp + 0x30], esp
push 6
push 0x703774
call fcn.0060ff10
mov ecx, dword [0x71b93c]
call fcn.00620870
mov dl, byte [esp + 0x14]
sub esp, 0x10
mov ecx, esp
mov dword [esp + 0x38], esp
mov byte [ecx], dl
mov dword [ecx + 4], ebx
mov dword [ecx + 8], ebx
mov dword [ecx + 0xc], ebx
mov eax, dword [0x6ce1fc]
lea edx, [esp + 0x24]
push eax
push ebx
push edx
call fcn.004136a0
push ecx
mov byte [esp + 0x194], 0xa
mov ecx, esp
mov dword [esp + 0x4c], esp
push 6
push 0x70379c
call fcn.0060ff10
mov ecx, dword [0x71b93c]
mov byte [esp + 0x194], 5
call fcn.006208f0
mov ecx, dword [0x71b93c]
call fcn.00620cd0
movsx eax, ax
sub eax, ebx
je 0x52b1a9
dec eax
je 0x52b19f
dec eax
jne 0x52ac58
mov al, byte [esp + 0x13]
mov edi, 3
cmp al, bl
jne 0x52b1b3
jmp 0x52ac58
mov edi, 2
jmp 0x52ac58
mov edi, 1
jmp 0x52ac58
lea ecx, [esp + 0x34]
mov byte [esp + 0x180], 4
call fcn.0060ffb0
mov eax, dword [esp + 0x18]
cmp eax, ebx
je 0x52b1e9
lea ecx, [eax - 1]
mov al, byte [eax - 1]
cmp al, bl
je 0x52b1e0
cmp al, 0xff
je 0x52b1e0
dec al
mov byte [ecx], al
jmp 0x52b1e9
push ecx
call fcn.00697880
add esp, 4
lea ecx, [esp + 0x158]
mov dword [esp + 0x18], ebx
mov dword [esp + 0x1c], ebx
mov dword [esp + 0x20], ebx
mov byte [esp + 0x180], 2
call fcn.00548470
lea ecx, [esp + 0x2c]
mov byte [esp + 0x180], 1
call fcn.0060ffb0
lea ecx, [esp + 0x134]
mov byte [esp + 0x180], bl
call fcn.0060d280
lea ecx, [esp + 0x188]
mov dword [esp + 0x180], 0xffffffff
call fcn.0060ffb0
mov ax, 1
mov ecx, dword [esp + 0x178]
pop edi
pop esi
pop ebp
mov dword fs:[0], ecx
pop ebx
add esp, 0x174
ret 4