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

Disassembly:
push 0xffffffffffffffff
push 0x4a9273
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x100
push ebx
push ebp
push esi
mov esi, ecx
push edi
mov dword [esp + 0x38], esi
xor ebp, ebp
lea ecx, [esp + 0x18]
push ebp
mov dword [esp + 0x11c], ebp
call fcn.00475930
push ebp
lea ecx, [esp + 0x5c]
mov byte [esp + 0x11c], 1
call fcn.00475930
push ebp
lea ecx, [esp + 0x80]
mov byte [esp + 0x11c], 2
call fcn.00475930
push ebp
lea ecx, [esp + 0x64]
mov byte [esp + 0x11c], 3
call fcn.00475930
push ebp
lea ecx, [esp + 0x60]
mov byte [esp + 0x11c], 4
call fcn.00475930
lea ecx, [esp + 0x40]
mov byte [esp + 0x118], 5
mov dword [esp + 0x10], ebp
call fcn.0047a3a0
mov al, byte [esp + 0x27]
push ebp
lea ecx, [esp + 0x2c]
mov byte [esp + 0x11c], 6
mov byte [esp + 0x2c], al
call fcn.0041ba60
mov edi, 0x4c4510
or ecx, 0xffffffff
xor eax, eax
push 1
repne scasb al, byte es:[edi]
not ecx
dec ecx
mov ebx, ecx
lea ecx, [esp + 0x2c]
push ebx
call fcn.0041c2e0
test al, al
je 0x45ba9c
mov edi, dword [esp + 0x2c]
mov ecx, ebx
mov edx, ecx
mov esi, 0x4c4510
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov eax, dword [esp + 0x2c]
mov esi, dword [esp + 0x38]
mov dword [esp + 0x30], ebx
mov byte [ebx + eax], 0
push 5
lea ecx, [esp + 0x124]
mov byte [esp + 0x11c], 7
call fcn.0041b6f0
push ecx
mov ecx, esp
mov dword [esp + 0x18], esp
push eax
call fcn.00475910
lea ecx, [esp + 0x64]
call fcn.00475ae0
push 6
lea ecx, [esp + 0x124]
call fcn.0041b6f0
push ecx
mov ecx, esp
mov dword [esp + 0x18], esp
push eax
call fcn.00475910
lea ecx, [esp + 0x60]
call fcn.00475ae0
push 1
lea ecx, [esp + 0x124]
call fcn.0041b6f0
push ecx
mov ecx, esp
mov dword [esp + 0x18], esp
push eax
call fcn.00475910
lea ecx, [esp + 0x1c]
call fcn.00475ae0
push 8
lea ecx, [esp + 0x124]
call fcn.0041b6f0
push ecx
mov ecx, esp
mov dword [esp + 0x18], esp
push eax
call fcn.00475910
lea ecx, [esp + 0x80]
call fcn.00475ae0
lea edi, [esi + 0x1c]
push 7
mov ecx, edi
mov dword [esp + 0x58], edi
call fcn.00475c70
inc al
mov ecx, edi
push eax
push 7
call fcn.00475c80
push ebp
lea ecx, [esp + 0x80]
call fcn.00475c70
mov byte [esp + 0x14], al
mov ecx, dword [esp + 0x14]
and ecx, 0xff
lea eax, [ecx - 1]
cmp eax, 6
ja case.default.0x45bb7a
jmp dword [eax*4 + 0x45cd18]
push ecx
mov dword [esp + 0x14], ebp
mov ecx, esp
mov dword [esp + 0x18], esp
push ebp
call fcn.00475930
lea ecx, [esi + 0x20]
mov dword [esp + 0x18], ecx
call fcn.00475ae0
add esi, 0x18
mov al, byte [esp + 0x27]
sub esp, 0x10
mov edx, esp
mov edi, str.2500
or ecx, 0xffffffff
mov dword [esp + 0x48], esp
mov byte [edx], al
xor eax, eax
mov dword [edx + 4], ebp
mov dword [edx + 8], ebp
mov dword [edx + 0xc], ebp
repne scasb al, byte es:[edi]
not ecx
dec ecx
push ecx
push str.2500
mov ecx, edx
call fcn.0041c100
sub esp, 0x10
lea edx, [esp + 0x47]
mov ecx, esp
mov dword [esp + 0x90], esp
push edx
push 0x4bc5d8
mov byte [esp + 0x140], 8
call fcn.0041b350
sub esp, 0x10
lea eax, [esp + 0x96]
mov ecx, esp
mov dword [esp + 0xa8], esp
push eax
push 0x4bcb9c
mov byte [esp + 0x150], 9
call fcn.0041b350
sub esp, 0x10
lea edx, [esp + 0x7d]
mov ecx, esp
mov dword [esp + 0xa8], esp
push edx
push 0x4c4510
mov byte [esp + 0x160], 0xa
call fcn.0041b350
sub esp, 0x10
mov byte [esp + 0x168], 0xb
mov edi, esp
mov dword [esp + 0x70], esp
push ecx
mov ecx, esp
mov dword [esp + 0x70], esp
push esi
call fcn.00475910
push edi
call fcn.00477540
add esp, 8
push 9
lea ecx, [esp + 0x174]
mov byte [esp + 0x16c], 0xc
call fcn.0041b6f0
sub esp, 0x10
mov edi, esp
mov dword [esp + 0x7c], esp
push ecx
mov ecx, esp
mov dword [esp + 0x80], esp
push eax
call fcn.00475910
push edi
call fcn.00477540
add esp, 8
lea eax, [esp + 0x120]
mov ecx, 0x4c45b8
mov byte [esp + 0x178], 7
push eax
call fcn.0047ac60
mov byte [esp + 0x118], 0xd
mov edx, dword [0x4ad134]
mov cx, word [eax]
push edx
add eax, 4
mov word [esp + 0x44], cx
push ebp
push eax
lea ecx, [esp + 0x50]
call fcn.0041b7e0
mov eax, dword [esp + 0xc8]
mov byte [esp + 0x118], 7
cmp eax, ebp
je 0x45bd0e
mov cl, byte [eax - 1]
dec eax
test cl, cl
je 0x45bd05
cmp cl, 0xff
je 0x45bd05
dec cl
mov byte [eax], cl
jmp 0x45bd0e
push eax
call fcn.00498130
add esp, 4
lea ecx, [esp + 0x40]
mov dword [esp + 0xc8], ebp
mov dword [esp + 0xcc], ebp
mov dword [esp + 0xd0], ebp
call fcn.00483340
cmp ax, 2
je 0x45c0f2
lea eax, [esp + 0x80]
lea ecx, [esp + 0x40]
push eax
call fcn.0047a5f0
mov ecx, dword [0x4ad134]
mov byte [esp + 0x118], 0xe
push ecx
push ebp
push eax
lea ecx, [esp + 0x34]
call fcn.0041b7e0
mov ecx, dword [esp + 0x84]
mov byte [esp + 0x118], 7
cmp ecx, ebp
je 0x45bd8f
mov al, byte [ecx - 1]
dec ecx
test al, al
je 0x45bd86
cmp al, 0xff
je 0x45bd86
dec al
mov byte [ecx], al
jmp 0x45bd8f
push ecx
call fcn.00498130
add esp, 4
cmp word [esp + 0x30], 5
mov dword [esp + 0x84], ebp
mov dword [esp + 0x88], ebp
mov dword [esp + 0x8c], ebp
jge 0x45bdd0
mov eax, dword [esp + 0x2c]
cmp eax, ebp
jne 0x45bdb9
mov eax, 0x4ad138
push eax
call fcn.00498d40
mov ebx, eax
add esp, 4
cmp bx, bp
jl 0x45bdd0
cmp bx, 0x9c4
jle 0x45be3e
push ebp
push 1
sub esp, 0x10
mov edi, esp
mov dword [esp + 0x34], esp
push ecx
mov ecx, esp
mov dword [esp + 0x3c], esp
push esi
call fcn.00475910
push edi
call fcn.00477540
add esp, 8
push 0xa
lea ecx, [esp + 0x13c]
mov byte [esp + 0x134], 0xf
call fcn.0041b6f0
sub esp, 0x10
mov edi, esp
mov dword [esp + 0x48], esp
push ecx
mov ecx, esp
mov dword [esp + 0x4c], esp
push eax
call fcn.00475910
push edi
call fcn.00477540
add esp, 8
mov ecx, 0x4c45b8
mov byte [esp + 0x140], 7
call fcn.0047a9a0
jmp 0x45bba1
mov esi, dword [esp + 0x14]
xor edx, edx
mov dl, bh
push edx
jmp 0x45c176
mov dword [esp + 0x10], ebp
lea ebx, [esi + 0x18]
mov al, byte [esp + 0x3d]
sub esp, 0x10
mov edx, esp
mov edi, str.1500
or ecx, 0xffffffff
mov dword [esp + 0x2c], esp
mov byte [edx], al
xor eax, eax
mov dword [edx + 4], ebp
mov dword [edx + 8], ebp
mov dword [edx + 0xc], ebp
repne scasb al, byte es:[edi]
not ecx
dec ecx
push ecx
push str.1500
mov ecx, edx
call fcn.0041c100
sub esp, 0x10
lea edx, [esp + 0x97]
mov ecx, esp
mov dword [esp + 0x40], esp
push edx
push str._1500
mov byte [esp + 0x140], 0x10
call fcn.0041b350
sub esp, 0x10
lea eax, [esp + 0x95]
mov ecx, esp
mov dword [esp + 0x98], esp
push eax
push 0x4bcb9c
mov byte [esp + 0x150], 0x11
call fcn.0041b350
sub esp, 0x10
lea edx, [esp + 0x7e]
mov ecx, esp
mov dword [esp + 0xb8], esp
push edx
push 0x4c4510
mov byte [esp + 0x160], 0x12
call fcn.0041b350
sub esp, 0x10
mov byte [esp + 0x168], 0x13
mov edi, esp
mov dword [esp + 0xc0], esp
push ecx
mov ecx, esp
mov dword [esp + 0x68], esp
push ebx
call fcn.00475910
push edi
call fcn.00477540
add esp, 8
push 9
lea ecx, [esp + 0x174]
mov byte [esp + 0x16c], 0x14
call fcn.0041b6f0
sub esp, 0x10
mov edi, esp
mov dword [esp + 0x74], esp
push ecx
mov ecx, esp
mov dword [esp + 0x78], esp
push eax
call fcn.00475910
push edi
call fcn.00477540
add esp, 8
lea eax, [esp + 0x148]
mov ecx, 0x4c45b8
mov byte [esp + 0x178], 7
push eax
call fcn.0047ac60
mov byte [esp + 0x118], 0x15
mov edx, dword [0x4ad134]
mov cx, word [eax]
push edx
add eax, 4
mov word [esp + 0x44], cx
push ebp
push eax
lea ecx, [esp + 0x50]
call fcn.0041b7e0
mov eax, dword [esp + 0xf0]
mov byte [esp + 0x118], 7
cmp eax, ebp
je 0x45bfc0
mov cl, byte [eax - 1]
dec eax
test cl, cl
je 0x45bfb7
cmp cl, 0xff
je 0x45bfb7
dec cl
mov byte [eax], cl
jmp 0x45bfc0
push eax
call fcn.00498130
add esp, 4
lea ecx, [esp + 0x40]
mov dword [esp + 0xf0], ebp
mov dword [esp + 0xf4], ebp
mov dword [esp + 0xf8], ebp
call fcn.00483340
cmp ax, 2
je 0x45c0f2
lea eax, [esp + 0xb0]
lea ecx, [esp + 0x40]
push eax
call fcn.0047a5f0
mov ecx, dword [0x4ad134]
mov byte [esp + 0x118], 0x16
push ecx
push ebp
push eax
lea ecx, [esp + 0x34]
call fcn.0041b7e0
mov ecx, dword [esp + 0xb4]
mov byte [esp + 0x118], 7
cmp ecx, ebp
je 0x45c041
mov al, byte [ecx - 1]
dec ecx
test al, al
je 0x45c038
cmp al, 0xff
je 0x45c038
dec al
mov byte [ecx], al
jmp 0x45c041
push ecx
call fcn.00498130
add esp, 4
cmp word [esp + 0x30], 6
mov dword [esp + 0xb4], ebp
mov dword [esp + 0xb8], ebp
mov dword [esp + 0xbc], ebp
jge 0x45c084
mov eax, dword [esp + 0x2c]
cmp eax, ebp
jne 0x45c06b
mov eax, 0x4ad138
push eax
call fcn.00498d40
add esp, 4
cmp ax, 0xfa24
jl 0x45c084
cmp ax, 0x5dc
jle 0x45c168
push ebp
push 1
sub esp, 0x10
mov edi, esp
mov dword [esp + 0x34], esp
push ecx
mov ecx, esp
mov dword [esp + 0x3c], esp
push ebx
call fcn.00475910
push edi
call fcn.00477540
add esp, 8
push 0xa
lea ecx, [esp + 0x13c]
mov byte [esp + 0x134], 0x17
call fcn.0041b6f0
sub esp, 0x10
mov edi, esp
mov dword [esp + 0x48], esp
push ecx
mov ecx, esp
mov dword [esp + 0x4c], esp
push eax
call fcn.00475910
push edi
call fcn.00477540
add esp, 8
mov ecx, 0x4c45b8
mov byte [esp + 0x140], 7
call fcn.0047a9a0
jmp 0x45be53
mov ecx, dword [esp + 0x54]
push ebp
push 7
call fcn.00475c80
push ecx
lea edx, [esp + 0x60]
mov ecx, esp
mov dword [esp + 0x20], esp
push edx
call fcn.00475910
mov ecx, dword [0x4c4560]
call fcn.0042d870
cmp ax, bp
je 0x45c13d
mov dword [esp + 0x10], 1
push ebp
lea ecx, [esp + 0x60]
call fcn.00475c70
mov ecx, dword [esp + 0x54]
push eax
push 7
call fcn.00475c80
mov eax, dword [esp + 0x2c]
cmp eax, ebp
je 0x45cc27
lea ecx, [eax - 1]
mov al, byte [eax - 1]
test al, al
je 0x45cc1e
cmp al, 0xff
je 0x45cc1e
dec al
mov byte [ecx], al
jmp 0x45cc27
add esi, 0x20
lea ebx, [eax + 0x8000]
xor edx, edx
mov dl, bh
push edx
mov ecx, esi
call fcn.00475ce0
push ebx
mov ecx, esi
call fcn.00475ce0
mov dword [esp + 0x10], 1
push ecx
lea eax, [esp + 0x64]
mov ecx, esp
mov dword [esp + 0x20], esp
push eax
call fcn.00475910
mov ecx, dword [0x4c4560]
call fcn.0042d870
cmp ax, bp
je 0x45c13d
mov dword [esp + 0x10], 1
push ebp
lea ecx, [esp + 0x64]
jmp 0x45c12c
mov dword [esp + 0x10], ebp
xor esi, esi
mov al, byte [esp + 0x3e]
sub esp, 0x10
mov ebp, esp
mov edi, str.5000
or ecx, 0xffffffff
mov dword [esp + 0x2c], esp
mov byte [ebp], al
xor eax, eax
mov dword [ebp + 4], esi
mov dword [ebp + 8], esi
mov dword [ebp + 0xc], esi
push 1
repne scasb al, byte es:[edi]
not ecx
dec ecx
mov ebx, ecx
mov ecx, ebp
push ebx
call fcn.0041c2e0
test al, al
je 0x45c220
mov edi, dword [ebp + 4]
mov ecx, ebx
mov edx, ecx
mov esi, str.5000
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
push ebx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov ecx, ebp
call fcn.0041c2c0
xor esi, esi
sub esp, 0x10
lea eax, [esp + 0x8e]
mov ecx, esp
mov dword [esp + 0x40], esp
push eax
push 0x4bc5d8
mov byte [esp + 0x140], 0x18
call fcn.0041b350
sub esp, 0x10
lea edx, [esp + 0xa5]
mov ecx, esp
mov dword [esp + 0x98], esp
push edx
push 0x4bcb9c
mov byte [esp + 0x150], 0x19
call fcn.0041b350
sub esp, 0x10
lea eax, [esp + 0x7f]
mov ecx, esp
mov dword [esp + 0xb8], esp
push eax
push 0x4c4510
mov byte [esp + 0x160], 0x1a
call fcn.0041b350
mov edx, dword [esp + 0x78]
sub esp, 0x10
mov edi, esp
mov dword [esp + 0xc0], esp
push ecx
lea eax, [edx + 0x18]
mov ecx, esp
mov dword [esp + 0x68], esp
push eax
mov byte [esp + 0x170], 0x1b
call fcn.00475910
push edi
call fcn.00477540
add esp, 8
push 9
lea ecx, [esp + 0x174]
mov byte [esp + 0x16c], 0x1c
call fcn.0041b6f0
sub esp, 0x10
mov edi, esp
mov dword [esp + 0x74], esp
push ecx
mov ecx, esp
mov dword [esp + 0x78], esp
push eax
call fcn.00475910
push edi
call fcn.00477540
add esp, 8
lea eax, [esp + 0x134]
mov ecx, 0x4c45b8
mov byte [esp + 0x178], 7
push eax
call fcn.0047ac60
mov edx, dword [0x4ad134]
mov cx, word [eax]
push edx
add eax, 4
mov word [esp + 0x44], cx
push esi
push eax
lea ecx, [esp + 0x50]
mov byte [esp + 0x124], 0x1d
call fcn.0041b7e0
mov eax, dword [esp + 0xdc]
mov byte [esp + 0x118], 7
cmp eax, esi
je 0x45c361
lea ecx, [eax - 1]
mov al, byte [eax - 1]
test al, al
je 0x45c358
cmp al, 0xff
je 0x45c358
dec al
mov byte [ecx], al
jmp 0x45c361
push ecx
call fcn.00498130
add esp, 4
lea ecx, [esp + 0x40]
mov dword [esp + 0xdc], esi
mov dword [esp + 0xe0], esi
mov dword [esp + 0xe4], esi
call fcn.00483340
cmp ax, 2
je 0x45ca27
lea eax, [esp + 0xa0]
lea ecx, [esp + 0x40]
push eax
call fcn.0047a5f0
mov edi, eax
mov ecx, dword [edi + 8]
mov eax, dword [0x4ad134]
mov ebx, ecx
mov byte [esp + 0x118], 0x1e
cmp eax, ebx
jae 0x45c3b4
mov ebx, eax
lea edx, [esp + 0x28]
cmp edx, edi
jne 0x45c3d7
push eax
push ebx
lea ecx, [esp + 0x30]
call fcn.0041c1a0
push esi
push esi
lea ecx, [esp + 0x30]
call fcn.0041c1a0
jmp 0x45c462
cmp ebx, esi
jbe 0x45c424
cmp ebx, ecx
jne 0x45c424
mov eax, dword [edi + 4]
cmp eax, esi
jne 0x45c3eb
mov eax, 0x4ad138
cmp byte [eax - 1], 0xfe
jae 0x45c424
push 1
lea ecx, [esp + 0x2c]
call fcn.0041ba60
mov eax, dword [edi + 4]
cmp eax, esi
jne 0x45c408
mov eax, 0x4ad138
mov dword [esp + 0x2c], eax
mov ecx, dword [edi + 8]
mov dword [esp + 0x30], ecx
mov edi, dword [edi + 0xc]
mov dword [esp + 0x34], edi
mov cl, byte [eax - 1]
inc cl
mov byte [eax - 1], cl
jmp 0x45c462
push 1
push ebx
lea ecx, [esp + 0x30]
call fcn.0041c2e0
test al, al
je 0x45c462
mov edi, dword [edi + 4]
cmp edi, esi
mov esi, 0x4ad138
je 0x45c442
mov esi, edi
mov edi, dword [esp + 0x2c]
mov ecx, ebx
mov eax, ecx
push ebx
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 + 0x2c]
call fcn.0041c2c0
xor esi, esi
mov ecx, dword [esp + 0xa4]
mov byte [esp + 0x118], 7
cmp ecx, esi
je 0x45c490
mov al, byte [ecx - 1]
dec ecx
test al, al
je 0x45c487
cmp al, 0xff
je 0x45c487
dec al
mov byte [ecx], al
jmp 0x45c490
push ecx
call fcn.00498130
add esp, 4
cmp word [esp + 0x30], 5
mov dword [esp + 0xa4], esi
mov dword [esp + 0xa8], esi
mov dword [esp + 0xac], esi
jge 0x45c4d5
mov eax, dword [esp + 0x2c]
cmp eax, esi
jne 0x45c4ba
mov eax, 0x4ad138
push eax
call fcn.00498d40
mov ebx, eax
add esp, 4
cmp bx, si
jl 0x45c4d5
cmp bx, 0x1388
jle 0x45ca3a
mov edx, dword [esp + 0x38]
push esi
push 1
sub esp, 0x10
lea eax, [edx + 0x18]
mov edi, esp
mov dword [esp + 0x34], esp
push ecx
mov ecx, esp
mov dword [esp + 0x3c], esp
push eax
call fcn.00475910
push edi
call fcn.00477540
add esp, 8
push 0xa
lea ecx, [esp + 0x13c]
mov byte [esp + 0x134], 0x1f
call fcn.0041b6f0
sub esp, 0x10
mov edi, esp
mov dword [esp + 0x48], esp
push ecx
mov ecx, esp
mov dword [esp + 0x4c], esp
push eax
call fcn.00475910
push edi
call fcn.00477540
add esp, 8
mov ecx, 0x4c45b8
mov byte [esp + 0x140], 7
call fcn.0047a9a0
jmp 0x45c1c6
mov dword [esp + 0x10], ebp
xor esi, esi
mov dl, byte [esp + 0x3f]
sub esp, 0x10
mov ebp, esp
mov edi, str.2000
or ecx, 0xffffffff
xor eax, eax
mov byte [ebp], dl
mov dword [ebp + 4], esi
mov dword [ebp + 8], esi
mov dword [ebp + 0xc], esi
repne scasb al, byte es:[edi]
not ecx
dec ecx
mov dword [esp + 0x2c], esp
mov ebx, ecx
push 1
push ebx
mov ecx, ebp
call fcn.0041c2e0
test al, al
je 0x45c5ad
mov edi, dword [ebp + 4]
mov ecx, ebx
mov eax, ecx
mov esi, str.2000
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov eax, dword [ebp + 4]
mov dword [ebp + 8], ebx
add ebx, eax
xor esi, esi
mov byte [ebx], 0
sub esp, 0x10
lea edx, [esp + 0x87]
mov ecx, esp
mov dword [esp + 0x40], esp
push edx
push 0x4bc5d8
mov byte [esp + 0x140], 0x20
call fcn.0041b350
sub esp, 0x10
lea eax, [esp + 0xa6]
mov ecx, esp
mov dword [esp + 0x98], esp
push eax
push 0x4bcb9c
mov byte [esp + 0x150], 0x21
call fcn.0041b350
sub esp, 0x10
lea edx, [esp + 0xaf]
mov ecx, esp
mov dword [esp + 0xb8], esp
push edx
push 0x4c4510
mov byte [esp + 0x160], 0x22
call fcn.0041b350
mov eax, dword [esp + 0x78]
sub esp, 0x10
mov edi, esp
mov dword [esp + 0xc0], esp
push ecx
add eax, 0x18
mov ecx, esp
mov dword [esp + 0x68], esp
push eax
mov byte [esp + 0x170], 0x23
call fcn.00475910
push edi
call fcn.00477540
add esp, 8
push 9
lea ecx, [esp + 0x174]
mov byte [esp + 0x16c], 0x24
call fcn.0041b6f0
sub esp, 0x10
mov edi, esp
mov dword [esp + 0x74], esp
push ecx
mov ecx, esp
mov dword [esp + 0x78], esp
push eax
call fcn.00475910
push edi
call fcn.00477540
add esp, 8
lea ecx, [esp + 0x15c]
mov byte [esp + 0x178], 7
push ecx
mov ecx, 0x4c45b8
call fcn.0047ac60
mov dx, word [eax]
mov ebx, dword [0x4ad134]
lea edi, [eax + 4]
mov word [esp + 0x40], dx
mov byte [esp + 0x118], 0x25
mov eax, dword [edi + 8]
mov ebp, eax
cmp ebx, ebp
jae 0x45c6c0
mov ebp, ebx
lea ecx, [esp + 0x44]
cmp ecx, edi
jne 0x45c731
cmp dword [esp + 0x4c], ebp
jae 0x45c6d3
call fcn.00498367
lea ecx, [esp + 0x44]
call fcn.0041c780
mov eax, dword [esp + 0x4c]
sub eax, ebp
cmp eax, ebx
jae 0x45c6e8
mov ebx, eax
cmp ebx, esi
jbe 0x45c721
mov edx, dword [esp + 0x48]
sub eax, ebx
add ebp, edx
push eax
lea ecx, [ebx + ebp]
push ecx
push ebp
call fcn.00498880
mov edi, dword [esp + 0x58]
add esp, 0xc
sub edi, ebx
lea ecx, [esp + 0x44]
push esi
push edi
call fcn.0041c2e0
test al, al
je 0x45c721
push edi
lea ecx, [esp + 0x48]
call fcn.0041c2c0
push esi
push esi
lea ecx, [esp + 0x4c]
call fcn.0041c1a0
jmp 0x45c7be
cmp ebp, esi
jbe 0x45c77e
cmp ebp, eax
jne 0x45c77e
mov eax, dword [edi + 4]
cmp eax, esi
jne 0x45c745
mov eax, 0x4ad138
cmp byte [eax - 1], 0xfe
jae 0x45c77e
push 1
lea ecx, [esp + 0x48]
call fcn.0041ba60
mov eax, dword [edi + 4]
cmp eax, esi
jne 0x45c762
mov eax, 0x4ad138
mov dword [esp + 0x48], eax
mov ecx, dword [edi + 8]
mov dword [esp + 0x4c], ecx
mov edi, dword [edi + 0xc]
mov dword [esp + 0x50], edi
mov cl, byte [eax - 1]
inc cl
mov byte [eax - 1], cl
jmp 0x45c7be
push 1
push ebp
lea ecx, [esp + 0x4c]
call fcn.0041c2e0
test al, al
je 0x45c7be
mov edi, dword [edi + 4]
cmp edi, esi
mov esi, 0x4ad138
je 0x45c79c
mov esi, edi
mov edi, dword [esp + 0x48]
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 + 0x48]
mov dword [esp + 0x4c], ebp
xor esi, esi
mov byte [ecx + ebp], 0
mov ecx, dword [esp + 0x104]
mov byte [esp + 0x118], 7
cmp ecx, esi
je 0x45c7ec
mov al, byte [ecx - 1]
dec ecx
test al, al
je 0x45c7e3
cmp al, 0xff
je 0x45c7e3
dec al
mov byte [ecx], al
jmp 0x45c7ec
push ecx
call fcn.00498130
add esp, 4
lea ecx, [esp + 0x40]
mov dword [esp + 0x104], esi
mov dword [esp + 0x108], esi
mov dword [esp + 0x10c], esi
call fcn.00483340
cmp ax, 2
je 0x45ca27
lea edx, [esp + 0x90]
lea ecx, [esp + 0x40]
push edx
call fcn.0047a5f0
mov edi, eax
mov eax, dword [edi + 8]
mov ebp, dword [0x4ad134]
mov ebx, eax
mov byte [esp + 0x118], 0x26
cmp ebp, ebx
jae 0x45c840
mov ebx, ebp
lea ecx, [esp + 0x28]
cmp ecx, edi
jne 0x45c8b2
cmp dword [esp + 0x30], ebx
jae 0x45c853
call fcn.00498367
lea ecx, [esp + 0x28]
call fcn.0041c780
mov eax, dword [esp + 0x30]
sub eax, ebx
cmp eax, ebp
jae 0x45c868
mov ebp, eax
cmp ebp, esi
jbe 0x45c8a2
mov edx, dword [esp + 0x2c]
sub eax, ebp
push eax
lea ecx, [edx + ebx]
lea edx, [ecx + ebp]
push edx
push ecx
call fcn.00498880
mov edi, dword [esp + 0x3c]
add esp, 0xc
sub edi, ebp
lea ecx, [esp + 0x28]
push esi
push edi
call fcn.0041c2e0
test al, al
je 0x45c8a2
push edi
lea ecx, [esp + 0x2c]
call fcn.0041c2c0
push esi
push esi
lea ecx, [esp + 0x30]
call fcn.0041c1a0
jmp 0x45c93f
cmp ebx, esi
jbe 0x45c8ff
cmp ebx, eax
jne 0x45c8ff
mov eax, dword [edi + 4]
cmp eax, esi
jne 0x45c8c6
mov eax, 0x4ad138
cmp byte [eax - 1], 0xfe
jae 0x45c8ff
push 1
lea ecx, [esp + 0x2c]
call fcn.0041ba60
mov eax, dword [edi + 4]
cmp eax, esi
jne 0x45c8e3
mov eax, 0x4ad138
mov dword [esp + 0x2c], eax
mov ecx, dword [edi + 8]
mov dword [esp + 0x30], ecx
mov edi, dword [edi + 0xc]
mov dword [esp + 0x34], edi
mov cl, byte [eax - 1]
inc cl
mov byte [eax - 1], cl
jmp 0x45c93f
push 1
push ebx
lea ecx, [esp + 0x30]
call fcn.0041c2e0
test al, al
je 0x45c93f
mov edi, dword [edi + 4]
cmp edi, esi
mov esi, 0x4ad138
je 0x45c91d
mov esi, edi
mov edi, dword [esp + 0x2c]
mov ecx, ebx
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 + 0x2c]
mov dword [esp + 0x30], ebx
xor esi, esi
mov byte [ecx + ebx], 0
mov ecx, dword [esp + 0x94]
mov byte [esp + 0x118], 7
cmp ecx, esi
je 0x45c96d
mov al, byte [ecx - 1]
dec ecx
test al, al
je 0x45c964
cmp al, 0xff
je 0x45c964
dec al
mov byte [ecx], al
jmp 0x45c96d
push ecx
call fcn.00498130
add esp, 4
cmp word [esp + 0x30], 5
mov dword [esp + 0x94], esi
mov dword [esp + 0x98], esi
mov dword [esp + 0x9c], esi
jge 0x45c9b2
mov eax, dword [esp + 0x2c]
cmp eax, esi
jne 0x45c997
mov eax, 0x4ad138
push eax
call fcn.00498d40
mov ebx, eax
add esp, 4
cmp bx, si
jl 0x45c9b2
cmp bx, 0x7d0
jle 0x45ca3a
mov edx, dword [esp + 0x38]
push esi
push 1
sub esp, 0x10
lea eax, [edx + 0x18]
mov edi, esp
mov dword [esp + 0x34], esp
push ecx
mov ecx, esp
mov dword [esp + 0x3c], esp
push eax
call fcn.00475910
push edi
call fcn.00477540
add esp, 8
push 0xa
lea ecx, [esp + 0x13c]
mov byte [esp + 0x134], 0x27
call fcn.0041b6f0
sub esp, 0x10
mov edi, esp
mov dword [esp + 0x48], esp
push ecx
mov ecx, esp
mov dword [esp + 0x4c], esp
push eax
call fcn.00475910
push edi
call fcn.00477540
add esp, 8
mov ecx, 0x4c45b8
mov byte [esp + 0x140], 7
call fcn.0047a9a0
jmp 0x45c550
mov ecx, dword [esp + 0x54]
push esi
push 7
call fcn.00475c80
xor ebp, ebp
jmp case.default.0x45bb7a
mov eax, dword [esp + 0x38]
xor ecx, ecx
mov cl, bh
lea esi, [eax + 0x20]
push ecx
mov ecx, esi
call fcn.00475ce0
push ebx
mov ecx, esi
call fcn.00475ce0
mov dword [esp + 0x10], 1
xor ebp, ebp
jmp 0x45c18d
push 0x4c4538
push ecx
lea edx, [esp + 0x20]
mov ecx, esp
mov dword [esp + 0x24], esp
push edx
call fcn.00475910
mov ecx, esi
call fcn.00447c50
cmp ax, 1
mov dword [esp + 0x10], ebp
jne case.default.0x45bb7a
push ebp
mov ecx, 0x4c4538
call fcn.0041b6f0
push ecx
mov ecx, esp
mov dword [esp + 0x20], esp
push eax
call fcn.00475910
lea ecx, [esp + 0x5c]
call fcn.00475ae0
lea ecx, [esp + 0x58]
call fcn.00475d00
cmp ax, 3
jle case.default.0x45bb7a
push 2
lea ecx, [esp + 0x5c]
mov dword [esp + 0x14], 1
lea edi, [esi + 0x20]
call fcn.00475c70
push eax
mov ecx, edi
call fcn.00475ce0
push 3
lea ecx, [esp + 0x5c]
call fcn.00475c70
push eax
mov ecx, edi
call fcn.00475ce0
jmp 0x45c18d
mov edi, dword [esp + 0x38]
push ebp
lea esi, [edi + 0x20]
mov ecx, esi
call fcn.00475c70
push eax
push 2
lea ecx, [esp + 0x20]
call fcn.00475c80
push 1
mov ecx, esi
call fcn.00475c70
push eax
push 3
lea ecx, [esp + 0x20]
call fcn.00475c80
push 2
mov ecx, esi
call fcn.00475c70
push eax
push 4
lea ecx, [esp + 0x20]
call fcn.00475c80
push 3
mov ecx, esi
call fcn.00475c70
push eax
push 5
lea ecx, [esp + 0x20]
call fcn.00475c80
push 0x4c4538
push ecx
lea eax, [esp + 0x20]
mov ecx, esp
mov dword [esp + 0x24], esp
push eax
jmp 0x45cbff
mov edi, dword [esp + 0x38]
push 8
lea esi, [edi + 0x20]
mov ecx, esi
call fcn.00475c70
push eax
push 2
lea ecx, [esp + 0x20]
call fcn.00475c80
push 9
mov ecx, esi
call fcn.00475c70
push eax
push 3
lea ecx, [esp + 0x20]
call fcn.00475c80
push 6
mov ecx, esi
call fcn.00475c70
push eax
push 4
lea ecx, [esp + 0x20]
call fcn.00475c80
push 7
mov ecx, esi
call fcn.00475c70
push eax
push 5
lea ecx, [esp + 0x20]
call fcn.00475c80
push 4
mov ecx, esi
call fcn.00475c70
push eax
push 6
lea ecx, [esp + 0x20]
call fcn.00475c80
push 5
mov ecx, esi
call fcn.00475c70
push eax
push 7
lea ecx, [esp + 0x20]
call fcn.00475c80
push 0x4c4538
push ecx
lea edx, [esp + 0x20]
mov ecx, esp
mov dword [esp + 0x24], esp
push edx
call fcn.00475910
mov ecx, edi
call fcn.00447c50
cmp ax, 1
je 0x45c185
mov dword [esp + 0x10], ebp
jmp case.default.0x45bb7a
push ecx
call fcn.00498130
add esp, 4
mov eax, dword [esp + 0x48]
mov dword [esp + 0x2c], ebp
cmp eax, ebp
mov dword [esp + 0x30], ebp
mov dword [esp + 0x34], ebp
je 0x45cc58
lea ecx, [eax - 1]
mov al, byte [eax - 1]
test al, al
je 0x45cc4f
cmp al, 0xff
je 0x45cc4f
dec al
mov byte [ecx], al
jmp 0x45cc58
push ecx
call fcn.00498130
add esp, 4
lea ecx, [esp + 0x5c]
mov dword [esp + 0x48], ebp
mov dword [esp + 0x4c], ebp
mov dword [esp + 0x50], ebp
mov byte [esp + 0x118], 4
call fcn.00475a40
lea ecx, [esp + 0x60]
mov byte [esp + 0x118], 3
call fcn.00475a40
lea ecx, [esp + 0x7c]
mov byte [esp + 0x118], 2
call fcn.00475a40
lea ecx, [esp + 0x58]
mov byte [esp + 0x118], 1
call fcn.00475a40
lea ecx, [esp + 0x18]
mov byte [esp + 0x118], 0
call fcn.00475a40
mov eax, dword [esp + 0x128]
mov edi, dword [esp + 0x124]
cmp edi, eax
mov dword [esp + 0x118], 0xffffffff
mov ebx, eax
je 0x45cced
mov ecx, edi
call fcn.00475a40
add edi, 4
cmp edi, ebx
jne 0x45ccd8
mov edi, dword [esp + 0x124]
push edi
call fcn.00498130
mov ecx, dword [esp + 0x114]
mov ax, word [esp + 0x14]
add esp, 4
mov dword fs:[0], ecx
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x10c
ret 0x10