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

Disassembly:
push edi
push esi
push ebp
push ebx
sub esp, 0xf8
mov dword [esp + 0x80], eax
mov edx, dword [0x7d47f8]
mov dword [esp + 0xb8], edx
mov esi, dword [0x7d47fc]
mov ebx, dword [0x7d47e4]
mov ebp, dword [0x7d47e8]
mov ecx, dword [0x7d47ec]
mov dword [esp + 0x48], ecx
mov edx, dword [0x7d47dc]
mov dword [esp + 0xbc], edx
mov edx, dword [0x7d47e0]
mov dword [esp + 0x40], edx
cmp ebx, 1
je 0x40ad9c
cmp ebx, 2
je 0x40ad8b
cmp ebx, 3
je 0x40ad7a
cmp ebx, 4
je 0x40ad69
cmp ebx, 5
je 0x40ad58
cmp ebx, 6
je 0x40ad47
cmp ebx, 7
je 0x40ad36
mov edx, 1
mov dword [esp + 0xe4], edx
mov edx, eax
test edx, edx
jne 0x40985d
mov eax, esi
call fcn.00409780
mov edx, 0x5605b8
mov ecx, dword [edx]
mov dword [esp + 0x58], ecx
mov edi, dword [edx + 4]
mov dword [esp + 0x5c], edi
mov ecx, dword [edx + 8]
mov dword [esp + 0x60], ecx
mov ecx, dword [edx + 0xc]
mov dword [esp + 0x64], ecx
mov ecx, dword [edx + 0x10]
mov dword [esp + 0x68], ecx
mov ecx, dword [edx + 0x14]
mov dword [esp + 0x6c], ecx
mov ecx, dword [edx + 0x18]
mov dword [esp + 0x70], ecx
mov ecx, dword [edx + 0x1c]
mov dword [esp + 0x74], ecx
mov ecx, dword [edx + 0x20]
mov dword [esp + 0x78], ecx
mov edx, dword [edx + 0x24]
mov dword [esp + 0x7c], edx
mov edi, dword [esp + 0xbc]
xor edx, edx
mov byte [esi + 0x92], 0
test edi, edi
jle 0x40992b
xor ecx, ecx
mov eax, 1
lea edx, [eax + eax]
add edx, edx
cmp edi, dword [esp + edx + 0x58]
jg 0x4098d8
inc eax
cmp eax, 0xa
jl 0x4098c2
add eax, eax
lea edx, [eax + eax]
mov edx, dword [esp + edx + 0x54]
mov eax, dword [0x5867c8]
cmp edx, eax
jle 0x4098eb
test eax, eax
jle 0x4098eb
mov edx, eax
mov eax, dword [0x7d47cc]
cmp edx, eax
jle 0x4098fa
test eax, eax
jle 0x4098fa
mov edx, eax
cmp edx, ebp
jle 0x409904
test ebp, ebp
jle 0x409904
mov edx, ebp
sub edi, edx
mov dword [esi + ecx*4 + 0x9c], edx
movzx edx, byte [esi + 0x92]
inc edx
mov byte [esi + 0x92], dl
movzx ecx, dl
cmp ecx, 0x20
je 0x40ad16
test edi, edi
jg 0x4098bd
mov edi, dword [esp + 0x40]
mov byte [esi + 0x93], 0
test edi, edi
jle 0x40ad0f
xor ecx, ecx
mov dword [esp + 0x4c], ebp
mov ebp, dword [esp + 0x48]
mov eax, 1
lea edx, [eax + eax]
add edx, edx
cmp edi, dword [esp + edx + 0x58]
jg 0x409963
inc eax
cmp eax, 0xa
jl 0x40994d
add eax, eax
lea edx, [eax + eax]
mov edx, dword [esp + edx + 0x54]
mov eax, dword [0x5867cc]
cmp edx, eax
jle 0x409976
test eax, eax
jle 0x409976
mov edx, eax
mov eax, dword [0x7d47d0]
cmp edx, eax
jle 0x409985
test eax, eax
jle 0x409985
mov edx, eax
cmp edx, ebp
jle 0x40998f
test ebp, ebp
jle 0x40998f
mov edx, ebp
sub edi, edx
mov dword [esi + ecx*4 + 0x11c], edx
movzx ecx, byte [esi + 0x93]
inc ecx
mov byte [esi + 0x93], cl
movzx ecx, cl
cmp ecx, 0x20
je 0x40ace2
test edi, edi
jg 0x409948
mov ebp, dword [esp + 0x4c]
movzx edx, byte [esi + 0x92]
movzx edx, dl
mov dword [esp + 0x90], edx
mov eax, dword [0x5a35dc]
test eax, eax
je 0x40acc2
test eax, eax
je 0x40aca3
mov eax, dword [0x5a35e0]
test eax, eax
je 0x40ac84
test eax, eax
je 0x40ac65
mov eax, dword [0x5a35e4]
test eax, eax
je 0x40ac46
test eax, eax
je 0x40ac27
mov eax, dword [0x5a35e8]
test eax, eax
je 0x40ac08
test eax, eax
je 0x40abe9
mov eax, dword [0x5a35ec]
test eax, eax
je 0x40abca
test eax, eax
je 0x40abab
mov eax, dword [0x5a35f0]
test eax, eax
je 0x40ab8c
test eax, eax
je 0x40ab6d
mov eax, dword [0x5a35f4]
test eax, eax
je 0x40ab4e
test eax, eax
je 0x40ab2f
mov eax, dword [0x5a35f8]
test eax, eax
je 0x40ab10
test eax, eax
je 0x40aaf1
mov eax, dword [0x5a35fc]
test eax, eax
je 0x40aad2
test eax, eax
je 0x40aab3
test ecx, ecx
jle 0x40a535
mov edx, 1
mov dword [esp + 0xa4], edx
xor edi, edi
mov dword [esp + 0x54], edi
xor edx, edx
mov dword [esp + 0x98], edx
lea edx, [ecx - 1]
mov eax, dword [esp + 0x90]
lea edi, [eax - 1]
mov dword [esp + 0x84], edi
lea edi, [eax + eax]
add edi, edi
xor eax, eax
mov dword [esp + 0x44], eax
mov dword [esp + 0x38], edi
mov dword [esp + 0x9c], edx
mov dword [esp + 0x3c], ecx
mov dword [esp + 0x4c], ebp
mov dword [esp + 0x34], ebx
mov dword [esp + 0xa0], esi
mov edi, eax
mov esi, dword [esp + 0xa0]
mov eax, dword [esp + 0x98]
mov esi, dword [esi + eax*4 + 0x11c]
mov edx, dword [esp + 0x90]
test edx, edx
jle 0x40aaa7
xor ebp, ebp
xor ebx, ebx
mov edx, dword [esp + 0x54]
lea ecx, [edx + esi]
mov eax, dword [esp + 0x40]
sub eax, edx
add eax, edx
mov dword [esp + 0xb0], eax
mov eax, dword [esp + 0xa0]
lea edx, [eax + edi]
mov dword [esp + 0xec], edx
lea edx, [esi - 1]
mov dword [esp + 0xac], edx
xor edx, edx
mov dword [esp + 0xe8], edx
lea eax, [eax + edi + 0x1f0]
mov dword [esp + 0xc0], ecx
mov dword [esp + 0x94], eax
mov dword [esp + 0xdc], esi
mov dword [esp + 0x44], edi
mov edx, dword [esp + 0xe4]
mov esi, dword [esp + 0xa0]
mov esi, dword [esi + ebx*4 + 0x9c]
lea edi, [esi + esi]
add edi, edi
mov eax, dword [esp + 0xdc]
imul eax, edi
cmp eax, dword [0x586084]
jle 0x409bc7
mov dword [0x586084], eax
push eax
push dword [0x5a35dc]
mov dword [esp + 0xec], edx
call fcn.00459128
mov edx, dword [esp + 0xec]
add esp, 8
mov dword [0x5a35dc], eax
test eax, eax
je 0x40a5cc
mov ecx, dword [esp + 0x9c]
mov eax, dword [esp + 0x98]
cmp eax, ecx
je 0x409dc8
mov eax, dword [esp + 0x84]
cmp ebx, eax
je 0x409cab
mov ecx, dword [esp + 0x54]
mov eax, dword [esp + 0xc0]
cmp ecx, eax
jge 0x40a0cf
xor eax, eax
mov dword [esp + 0xb4], eax
lea eax, [ebp + ebp]
add eax, eax
mov dword [esp + 0xc4], eax
mov eax, ecx
imul eax, dword [esp + 0xbc]
mov dword [esp + 0xd8], esi
mov dword [esp + 0x88], ebx
mov dword [esp + 0x8c], ebp
mov dword [esp + 0xe4], edx
mov ebx, eax
mov ebp, ecx
mov esi, dword [esp + 0xb4]
mov edx, dword [esp + 0xb8]
mov eax, dword [edx + 0x80]
add eax, dword [esp + 0xc4]
lea edx, [ebx + ebx]
add edx, edx
add eax, edx
mov edx, esi
add edx, dword [0x5a35dc]
push edi
push eax
push edx
call dword [0x5a344c]
add esp, 0xc
add esi, edi
add ebx, dword [esp + 0xbc]
inc ebp
mov edx, dword [esp + 0xc0]
cmp ebp, edx
jl 0x409c46
mov esi, dword [esp + 0xd8]
mov ebx, dword [esp + 0x88]
mov ebp, dword [esp + 0x8c]
mov edx, dword [esp + 0xe4]
jmp 0x40a0cf
mov ecx, dword [esp + 0xbc]
sub ecx, ebp
add ecx, ecx
add ecx, ecx
mov dword [esp + 0xc8], ecx
mov ecx, dword [esp + 0x54]
mov eax, dword [esp + 0xc0]
cmp ecx, eax
jge 0x40a0cf
xor eax, eax
mov dword [esp + 0xb4], eax
mov eax, edi
sub eax, dword [esp + 0xc8]
mov dword [esp + 0xcc], eax
lea eax, [ebp + ebp]
add eax, eax
mov dword [esp + 0xc4], eax
mov eax, ecx
imul eax, dword [esp + 0xbc]
mov dword [esp + 0xa8], eax
mov dword [esp + 0xd0], edi
mov dword [esp + 0xd8], esi
mov dword [esp + 0x88], ebx
mov dword [esp + 0x8c], ebp
mov dword [esp + 0xe4], edx
mov ebx, ecx
mov ebp, eax
mov esi, dword [esp + 0xb4]
mov edi, dword [esp + 0xc8]
mov eax, dword [esp + 0xb8]
mov eax, dword [eax + 0x80]
add eax, dword [esp + 0xc4]
lea edx, [ebp + ebp]
add edx, edx
add eax, edx
mov edx, esi
add edx, dword [0x5a35dc]
push edi
push eax
push edx
call dword [0x5a344c]
mov edx, dword [0x5a35dc]
add edx, edi
add edx, esi
push dword [0x58673c]
mov eax, dword [esp + 0xdc]
push eax
push edx
call dword [0x5a3448]
add esp, 0x18
add esi, dword [esp + 0xd0]
add ebp, dword [esp + 0xbc]
inc ebx
mov eax, dword [esp + 0xc0]
cmp ebx, eax
jl 0x409d3e
mov esi, dword [esp + 0xd8]
mov ebx, dword [esp + 0x88]
mov ebp, dword [esp + 0x8c]
mov edx, dword [esp + 0xe4]
jmp 0x40a0cf
mov eax, dword [esp + 0x84]
cmp ebx, eax
je 0x409f2f
mov eax, dword [esp + 0x54]
mov dword [esp + 0xcc], eax
mov ecx, dword [esp + 0xb0]
cmp eax, ecx
jge 0x40a5f1
xor eax, eax
mov dword [esp + 0xa8], eax
lea ecx, [ebp + ebp]
add ecx, ecx
mov dword [esp + 0xb4], ecx
mov eax, dword [esp + 0xcc]
imul eax, dword [esp + 0xbc]
mov dword [esp + 0xc4], eax
mov dword [esp + 0xd8], esi
mov dword [esp + 0x88], ebx
mov dword [esp + 0x8c], ebp
mov dword [esp + 0xe4], edx
mov ebx, dword [esp + 0xa8]
mov ebp, eax
mov esi, dword [esp + 0xcc]
mov eax, dword [esp + 0xb8]
mov ecx, dword [eax + 0x80]
add ecx, dword [esp + 0xb4]
lea edx, [ebp + ebp]
add edx, edx
add ecx, edx
mov eax, ebx
add eax, dword [0x5a35dc]
push edi
push ecx
push eax
call dword [0x5a344c]
add esp, 0xc
add ebx, edi
add ebp, dword [esp + 0xbc]
inc esi
mov eax, dword [esp + 0xb0]
cmp esi, eax
jl 0x409e49
mov dword [esp + 0xa8], ebx
mov esi, dword [esp + 0xd8]
mov ebx, dword [esp + 0x88]
mov ebp, dword [esp + 0x8c]
mov edx, dword [esp + 0xe4]
mov ecx, dword [esp + 0xb0]
mov eax, dword [esp + 0xc0]
cmp ecx, eax
jge 0x40a0cf
mov dword [esp + 0xd8], esi
mov dword [esp + 0x88], ebx
mov dword [esp + 0x8c], ebp
mov dword [esp + 0xe4], edx
mov ebx, ecx
mov ebp, eax
mov esi, dword [esp + 0xa8]
mov eax, esi
add eax, dword [0x5a35dc]
push dword [0x58673c]
push edi
push eax
call dword [0x5a3448]
add esp, 0xc
add esi, edi
inc ebx
cmp ebx, ebp
jl 0x409eee
mov esi, dword [esp + 0xd8]
mov ebx, dword [esp + 0x88]
mov ebp, dword [esp + 0x8c]
mov edx, dword [esp + 0xe4]
jmp 0x40a0cf
mov eax, dword [esp + 0xbc]
sub eax, ebp
add eax, eax
add eax, eax
mov dword [esp + 0xc8], eax
mov ecx, dword [esp + 0x54]
mov dword [esp + 0xa8], ecx
mov eax, dword [esp + 0xb0]
cmp ecx, eax
jge 0x40aa9c
xor eax, eax
mov dword [esp + 0x50], eax
mov ecx, edi
sub ecx, dword [esp + 0xc8]
mov dword [esp + 0xc4], ecx
lea eax, [ebp + ebp]
add eax, eax
mov dword [esp + 0xb4], eax
mov eax, dword [esp + 0xa8]
imul eax, dword [esp + 0xbc]
mov dword [esp + 0xcc], eax
mov dword [esp + 0xd0], edi
mov dword [esp + 0xd8], esi
mov dword [esp + 0x88], ebx
mov dword [esp + 0x8c], ebp
mov dword [esp + 0xe4], edx
mov ebx, dword [esp + 0x50]
mov ebp, eax
mov esi, dword [esp + 0xa8]
mov edi, dword [esp + 0xc8]
mov eax, dword [esp + 0xb8]
mov ecx, dword [eax + 0x80]
add ecx, dword [esp + 0xb4]
lea edx, [ebp + ebp]
add edx, edx
add ecx, edx
mov eax, ebx
add eax, dword [0x5a35dc]
push edi
push ecx
push eax
call dword [0x5a344c]
mov edx, dword [0x5a35dc]
add edx, edi
add edx, ebx
push dword [0x58673c]
mov eax, dword [esp + 0xd4]
push eax
push edx
call dword [0x5a3448]
add esp, 0x18
add ebx, dword [esp + 0xd0]
add ebp, dword [esp + 0xbc]
inc esi
mov eax, dword [esp + 0xb0]
cmp esi, eax
jl 0x409fcd
mov dword [esp + 0x50], ebx
mov edi, dword [esp + 0xd0]
mov esi, dword [esp + 0xd8]
mov ebx, dword [esp + 0x88]
mov ebp, dword [esp + 0x8c]
mov edx, dword [esp + 0xe4]
mov ecx, dword [esp + 0xb0]
mov eax, dword [esp + 0xc0]
cmp ecx, eax
jge 0x40a0cf
mov dword [esp + 0xd8], esi
mov dword [esp + 0x88], ebx
mov dword [esp + 0x8c], ebp
mov dword [esp + 0xe4], edx
mov ebx, ecx
mov ebp, eax
mov esi, dword [esp + 0x50]
mov eax, esi
add eax, dword [0x5a35dc]
push dword [0x58673c]
push edi
push eax
call dword [0x5a3448]
add esp, 0xc
add esi, edi
inc ebx
cmp ebx, ebp
jl 0x40a093
mov esi, dword [esp + 0xd8]
mov ebx, dword [esp + 0x88]
mov ebp, dword [esp + 0x8c]
mov edx, dword [esp + 0xe4]
movsx eax, byte [0x7d3e30]
test eax, eax
je 0x40a0f3
movsx eax, byte [0x5866e0]
test eax, eax
je 0x40a0ec
mov ecx, 0x100005
jmp 0x40a0f8
mov ecx, 5
jmp 0x40a0f8
mov ecx, 5
movsx eax, byte [0x7d3e3c]
test eax, eax
jne 0x40a16f
mov eax, dword [esp + 0x80]
test eax, eax
je 0x40a118
mov edx, 1
jmp 0x40a241
mov dword [esp + 0xa8], ecx
mov ecx, dword [0x7d4778]
mov eax, dword [ecx]
xor edi, edi
push edi
mov edx, dword [esp + 0x98]
push edx
push edi
push dword [0x7d4770]
push edi
push 1
mov edx, dword [esp + 0xf4]
push edx
push esi
push ecx
mov ecx, dword [esp + 0xcc]
mov dword [esp + 0xcc], ecx
call dword [eax + 0x5c]
mov ecx, dword [esp + 0xa8]
mov dword [esp + 0xa4], eax
mov edx, 1
jmp 0x40a241
cmp edx, 1
jne 0x40a1dd
mov eax, dword [esp + 0x80]
test eax, eax
je 0x40a189
mov edx, 2
jmp 0x40a241
mov dword [esp + 0xa8], ecx
mov ecx, dword [0x7d4778]
mov eax, dword [ecx]
xor edi, edi
push edi
mov edx, dword [esp + 0x98]
push edx
push edi
push dword [0x7d4770]
push edi
push 2
mov edx, dword [esp + 0xf4]
push edx
push esi
push ecx
mov ecx, dword [esp + 0xcc]
mov dword [esp + 0xcc], ecx
call dword [eax + 0x5c]
mov ecx, dword [esp + 0xa8]
mov dword [esp + 0xa4], eax
mov edx, 2
jmp 0x40a241
mov eax, dword [esp + 0x80]
test eax, eax
je 0x40a1ef
mov edx, 4
jmp 0x40a241
mov dword [esp + 0xa8], ecx
mov ecx, dword [0x7d4778]
mov eax, dword [ecx]
xor edi, edi
push edi
mov edx, dword [esp + 0x98]
push edx
push edi
push dword [0x7d4770]
push edi
push 4
mov edx, dword [esp + 0xf4]
push edx
push esi
push ecx
mov ecx, dword [esp + 0xcc]
mov dword [esp + 0xcc], ecx
call dword [eax + 0x5c]
mov ecx, dword [esp + 0xa8]
mov dword [esp + 0xa4], eax
mov edx, 4
mov eax, dword [esp + 0xa4]
test eax, eax
jl 0x40aa6e
xor eax, eax
mov dword [esp + 0xd4], eax
mov dword [esp + 0xe0], eax
mov eax, dword [0x5a35dc]
test edx, edx
jbe 0x40a4cd
xor edi, edi
mov dword [esp + 0xcc], eax
mov dword [esp + 0xa8], ecx
mov dword [esp + 0xd8], esi
mov dword [esp + 0x88], ebx
mov dword [esp + 0x8c], ebp
mov dword [esp + 0xe4], edx
mov eax, dword [esp + 0xec]
mov edx, dword [esp + 0xe8]
mov ebp, dword [eax + edx + 0x1f0]
mov esi, dword [ebp]
lea ebx, [esp + 0xe0]
push ebx
push edi
push ebp
call dword [esi + 0x48]
test eax, eax
jne 0x40a491
mov eax, dword [0x7d4778]
mov ecx, edi
mov ebp, dword [esp + 0xd8]
sar ebp, cl
mov ecx, edi
mov ebx, dword [esp + 0xdc]
sar ebx, cl
mov esi, dword [eax]
lea edx, [esp + 0xd4]
push 0
push edx
push 2
push dword [0x5867c4]
push ebx
push ebp
push eax
call dword [esi + 0x90]
test eax, eax
jne 0x40a47d
cmp edi, 1
je 0x40a8e6
cmp edi, 2
je 0x40a887
cmp edi, 3
je 0x40a821
cmp edi, 4
je 0x40a7bb
cmp edi, 5
je 0x40a755
cmp edi, 6
je 0x40a6ef
cmp edi, 7
je 0x40a692
cmp edi, 8
je 0x40a63c
mov esi, dword [esp + 0xd4]
mov ecx, dword [esi]
lea edx, [esp + 0xf0]
xor eax, eax
push eax
push eax
push edx
push esi
call dword [ecx + 0x34]
test eax, eax
jl 0x40a628
test ebx, ebx
jle 0x40a3c6
xor edx, edx
add ebp, ebp
add ebp, ebp
mov eax, dword [esp + 0xcc]
mov dword [esp + 0xd0], esi
mov dword [esp + 0xc8], edi
mov esi, eax
mov edi, ebx
mov ebx, edx
mov ecx, ebx
imul ecx, dword [esp + 0xf0]
add ecx, dword [esp + 0xf4]
push ebp
push esi
push ecx
call dword [0x5a344c]
add esp, 0xc
add esi, ebp
inc ebx
cmp ebx, edi
jl 0x40a394
mov esi, dword [esp + 0xd0]
mov edi, dword [esp + 0xc8]
mov eax, dword [esi]
push esi
call dword [eax + 0x38]
test eax, eax
jl 0x40a5ff
movsx eax, byte [0x7d3e30]
test eax, eax
jne 0x40a41c
mov edx, dword [0x7d4778]
mov ebx, dword [edx]
xor eax, eax
push eax
push dword [esp + 0xe4]
push eax
push dword [esp + 0xe0]
push edx
call dword [ebx + 0x78]
mov dword [esp + 0xa4], eax
test eax, eax
je 0x40a443
push 0x7dd40c
push 0x7d98a0
call fcn.00432de0
add esp, 8
jmp 0x40a443
xor edx, edx
push dword [0x58673c]
mov eax, dword [esp + 0xac]
push eax
push edx
push edx
push dword [esp + 0xe4]
push edx
push edx
push dword [esp + 0xfc]
call fcn.004b0521
mov eax, dword [esp + 0xe0]
test eax, eax
je 0x40a454
mov edx, dword [eax]
push eax
call dword [edx + 8]
mov dword [esp + 0xe0], 0
mov eax, dword [esp + 0xd4]
test eax, eax
je 0x40a470
mov edx, dword [eax]
push eax
call dword [edx + 8]
mov dword [esp + 0xd4], 0
jmp 0x40a4a6
push 0x7dd370
push 0x7dd3a4
call fcn.0040af10
add esp, 8
jmp 0x40a4a6
push edi
push 2
push 0x7dd460
push 0x7d98a0
call fcn.00432de0
add esp, 0x10
inc edi
mov eax, dword [esp + 0xe4]
cmp edi, eax
jb 0x40a299
mov esi, dword [esp + 0xd8]
mov ebx, dword [esp + 0x88]
mov ebp, dword [esp + 0x8c]
mov edx, eax
lea ebp, [ebp + esi]
add dword [esp + 0xe8], 4
add dword [esp + 0x94], 4
inc ebx
mov eax, dword [esp + 0x90]
cmp ebx, eax
jl 0x409b73
mov dword [esp + 0xe4], edx
mov ecx, dword [esp + 0xc0]
mov edi, dword [esp + 0x44]
mov dword [esp + 0x54], ecx
add edi, dword [esp + 0x38]
mov eax, dword [esp + 0x98]
inc eax
mov dword [esp + 0x98], eax
mov edx, dword [esp + 0x3c]
cmp eax, edx
jl 0x409aea
mov ebp, dword [esp + 0x4c]
mov ebx, dword [esp + 0x34]
mov esi, dword [esp + 0xa0]
fld dword [0x7d47d4]
fnstcw word [esp + 0x28]
movzx eax, word [esp + 0x28]
or eax, 0xc00
mov dword [esp + 0x30], eax
fldcw word [esp + 0x30]
fistp qword [esi + 0x1c0]
fldcw word [esp + 0x28]
fld dword [0x7d47d8]
fnstcw word [esp + 0x28]
movzx eax, word [esp + 0x28]
or eax, 0xc00
mov dword [esp + 0x30], eax
fldcw word [esp + 0x30]
fistp qword [esi + 0x1c8]
fldcw word [esp + 0x28]
mov edx, dword [0x7d47dc]
mov dword [esi + 0x68], edx
mov ecx, dword [0x7d47e0]
mov dword [esi + 0x6c], ecx
mov byte [esi + 0x91], bl
mov dword [esi + 0x94], ebp
mov ebx, dword [esp + 0x48]
mov dword [esi + 0x98], ebx
xor eax, eax
mov dword [0x7d47dc], eax
mov dword [0x7d47e0], eax
mov dword [0x7d47d4], eax
mov dword [0x7d47d8], eax
xor eax, eax
add esp, 0xf8
pop ebx
pop ebp
pop esi
pop edi
ret
push 0x7dd5cc
push 0x7d98a0
mov dword [esp + 0xec], edx
call fcn.0040af10
mov edx, dword [esp + 0xec]
add esp, 8
jmp 0x409bc7
xor eax, eax
mov dword [esp + 0xa8], eax
jmp 0x409eb1
push 0x7dd900
push 0x7d98a0
call fcn.00432de0
add esp, 8
push 0x7dd708
push 0x7dd3a4
call fcn.0040af10
add esp, 8
jmp 0x40a45f
push 0x7dd8ec
push 0x7d98a0
call fcn.00432de0
add esp, 8
jmp 0x40a611
mov eax, dword [0x5a35fc]
mov dword [esp + 0xcc], eax
mov dword [esp + 0xc], 0
mov ecx, dword [esp + 0xd8]
lea esi, [ecx - 1]
mov dword [esp + 0x10], esi
mov edx, dword [esp + 0xac]
mov dword [esp + 0x14], edx
mov dword [esp + 0x18], ecx
mov edx, dword [esp + 0xdc]
mov dword [esp + 0x1c], edx
mov dword [esp + 0x20], ebp
mov dword [esp + 0x24], ebx
mov edx, dword [0x5a35dc]
xor ecx, ecx
call fcn.0040adbc
jmp 0x40a34e
mov eax, dword [esp + 0xd8]
lea esi, [eax - 1]
mov eax, dword [0x5a35f8]
mov dword [esp + 0xcc], eax
mov dword [esp + 0xc], 0
mov dword [esp + 0x10], esi
mov esi, dword [esp + 0xac]
mov dword [esp + 0x14], esi
mov edx, dword [esp + 0xd8]
mov dword [esp + 0x18], edx
mov edx, dword [esp + 0xdc]
mov dword [esp + 0x1c], edx
mov dword [esp + 0x20], ebp
mov dword [esp + 0x24], ebx
mov edx, dword [0x5a35dc]
xor ecx, ecx
call fcn.0040adbc
jmp 0x40a34e
mov eax, dword [esp + 0xd8]
lea esi, [eax - 1]
mov eax, dword [0x5a35f4]
mov dword [esp + 0xcc], eax
mov dword [esp + 0xc], 0
mov dword [esp + 0x10], esi
mov edx, dword [esp + 0xac]
mov dword [esp + 0x14], edx
mov edx, dword [esp + 0xd8]
mov dword [esp + 0x18], edx
mov edx, dword [esp + 0xdc]
mov dword [esp + 0x1c], edx
mov dword [esp + 0x20], ebp
mov dword [esp + 0x24], ebx
mov edx, dword [0x5a35dc]
xor ecx, ecx
call fcn.0040adbc
cmp edi, 7
je 0x40a69c
jmp 0x40a34e
mov eax, dword [esp + 0xd8]
lea esi, [eax - 1]
mov eax, dword [0x5a35f0]
mov dword [esp + 0xcc], eax
mov dword [esp + 0xc], 0
mov dword [esp + 0x10], esi
mov edx, dword [esp + 0xac]
mov dword [esp + 0x14], edx
mov edx, dword [esp + 0xd8]
mov dword [esp + 0x18], edx
mov edx, dword [esp + 0xdc]
mov dword [esp + 0x1c], edx
mov dword [esp + 0x20], ebp
mov dword [esp + 0x24], ebx
mov edx, dword [0x5a35dc]
xor ecx, ecx
call fcn.0040adbc
cmp edi, 6
je 0x40a6f9
jmp 0x40a34e
mov eax, dword [esp + 0xd8]
lea esi, [eax - 1]
mov eax, dword [0x5a35ec]
mov dword [esp + 0xcc], eax
mov dword [esp + 0xc], 0
mov dword [esp + 0x10], esi
mov edx, dword [esp + 0xac]
mov dword [esp + 0x14], edx
mov edx, dword [esp + 0xd8]
mov dword [esp + 0x18], edx
mov edx, dword [esp + 0xdc]
mov dword [esp + 0x1c], edx
mov dword [esp + 0x20], ebp
mov dword [esp + 0x24], ebx
mov edx, dword [0x5a35dc]
xor ecx, ecx
call fcn.0040adbc
cmp edi, 5
je 0x40a75f
jmp 0x40a34e
mov eax, dword [esp + 0xd8]
lea esi, [eax - 1]
mov eax, dword [0x5a35e8]
mov dword [esp + 0xcc], eax
mov dword [esp + 0xc], 0
mov dword [esp + 0x10], esi
mov edx, dword [esp + 0xac]
mov dword [esp + 0x14], edx
mov edx, dword [esp + 0xd8]
mov dword [esp + 0x18], edx
mov edx, dword [esp + 0xdc]
mov dword [esp + 0x1c], edx
mov dword [esp + 0x20], ebp
mov dword [esp + 0x24], ebx
mov edx, dword [0x5a35dc]
xor ecx, ecx
call fcn.0040adbc
cmp edi, 4
je 0x40a7c5
jmp 0x40a34e
mov eax, dword [0x5a35e4]
mov dword [esp + 0xcc], eax
mov ecx, dword [esp + 0xd8]
lea esi, [ecx - 1]
mov dword [esp + 0xc], 0
mov dword [esp + 0x10], esi
mov edx, dword [esp + 0xac]
mov dword [esp + 0x14], edx
mov dword [esp + 0x18], ecx
mov edx, dword [esp + 0xdc]
mov dword [esp + 0x1c], edx
mov dword [esp + 0x20], ebp
mov dword [esp + 0x24], ebx
mov edx, dword [0x5a35dc]
xor ecx, ecx
call fcn.0040adbc
cmp edi, 3
je 0x40a82b
jmp 0x40a34e
mov edx, dword [0x5a35dc]
mov eax, dword [0x5a35e0]
mov dword [esp + 0xcc], eax
mov esi, dword [esp + 0xd8]
lea eax, [esi - 1]
movsx ecx, byte [0x5866f4]
test ecx, ecx
jle 0x40aa67
mov dword [0x6504a4], 0x29
xor esi, esi
mov dword [esp + 0xb4], esi
xor esi, esi
mov dword [esp + 0xc4], eax
mov dword [esp + 0xd0], edx
mov dword [esp + 0x50], ebp
mov dword [esp + 0xc8], edi
mov edi, esi
mov esi, dword [esp + 0xb4]
jmp 0x40a94e
mov dword [esp + 0x50], ebp
mov dword [edi + 0x6504a8], 0
mov eax, ebx
cdq
idiv ecx
mov dword [edi + 0x6504ac], eax
mov ebp, dword [esp + 0x50]
xor eax, eax
mov dword [edi + 0x6504b8], eax
mov dword [edi + 0x6504bc], eax
mov edx, dword [esp + 0xc4]
mov dword [edi + 0x6504c0], edx
mov ecx, dword [esp + 0xac]
mov dword [edi + 0x6504c4], ecx
mov eax, dword [esp + 0xd8]
mov dword [edi + 0x6504c8], eax
mov eax, dword [esp + 0xdc]
mov dword [edi + 0x6504cc], eax
mov dword [edi + 0x6504d0], ebp
mov dword [edi + 0x6504d4], ebx
mov eax, dword [esp + 0xcc]
mov dword [edi + 0x6504d8], eax
mov eax, dword [esp + 0xd0]
mov dword [edi + 0x6504dc], eax
push dword [esi*4 + 0x651da0]
call dword [sym.imp.KERNEL32.dll_SetEvent]
push 0xffffffffffffffff
push dword [esi*4 + 0x651ea0]
call dword [sym.imp.KERNEL32.dll_WaitForSingleObject]
inc esi
movsx ecx, byte [0x5866f4]
cmp esi, ecx
jge 0x40aa36
lea eax, [esi + esi]
add eax, eax
sub eax, esi
lea edi, [esi + eax*8]
add edi, edi
add edi, edi
mov dword [edi + 0x6504a4], 0x29
test esi, esi
je 0x40a94a
cmp esi, 1
jne 0x40a967
mov eax, ebx
cdq
idiv ecx
mov dword [edi + 0x6504a8], eax
mov dword [edi + 0x6504ac], ebx
jmp 0x40a967
mov edi, dword [esp + 0xc8]
test ecx, ecx
jle 0x40a30f
xor esi, esi
push 0xffffffffffffffff
push dword [esi*4 + 0x651fa0]
call dword [sym.imp.KERNEL32.dll_WaitForSingleObject]
inc esi
movsx eax, byte [0x5866f4]
cmp esi, eax
jl 0x40aa47
jmp 0x40a30f
jg 0x40aa45
jmp 0x40a34e
push 0x7dd5e0
push 0x7d98a0
call fcn.0040af10
push 0x7dd6e0
push 0x7d98a0
call fcn.00432de0
mov eax, 0xffffffff
add esp, 0x108
pop ebx
pop ebp
pop esi
pop edi
ret
xor eax, eax
mov dword [esp + 0x50], eax
jmp 0x40a05d
mov eax, dword [esp + 0x54]
lea ecx, [eax + esi]
jmp 0x40a503
push 0x7dd5cc
push 0x7d98a0
mov dword [esp + 0x44], ecx
call fcn.0040af10
mov ecx, dword [esp + 0x44]
add esp, 8
jmp 0x409a88
push 0x100
mov dword [esp + 0x40], ecx
call fcn.00458ddc
mov ecx, dword [esp + 0x40]
add esp, 4
mov dword [0x5a35fc], eax
jmp 0x409a80
push 0x7dd5cc
push 0x7d98a0
mov dword [esp + 0x44], ecx
call fcn.0040af10
mov ecx, dword [esp + 0x44]
add esp, 8
jmp 0x409a73
push 0x400
mov dword [esp + 0x40], ecx
call fcn.00458ddc
mov ecx, dword [esp + 0x40]
add esp, 4
mov dword [0x5a35f8], eax
jmp 0x409a6b
push 0x7dd5cc
push 0x7d98a0
mov dword [esp + 0x44], ecx
call fcn.0040af10
mov ecx, dword [esp + 0x44]
add esp, 8
jmp 0x409a5e
push 0x1000
mov dword [esp + 0x40], ecx
call fcn.00458ddc
mov ecx, dword [esp + 0x40]
add esp, 4
mov dword [0x5a35f4], eax
jmp 0x409a56
push 0x7dd5cc
push 0x7d98a0
mov dword [esp + 0x44], ecx
call fcn.0040af10
mov ecx, dword [esp + 0x44]
add esp, 8
jmp 0x409a49
push 0x4000
mov dword [esp + 0x40], ecx
call fcn.00458ddc
mov ecx, dword [esp + 0x40]
add esp, 4
mov dword [0x5a35f0], eax
jmp 0x409a41
push 0x7dd5cc
push 0x7d98a0
mov dword [esp + 0x44], ecx
call fcn.0040af10
mov ecx, dword [esp + 0x44]
add esp, 8
jmp 0x409a34
push 0x10000
mov dword [esp + 0x40], ecx
call fcn.00458ddc
mov ecx, dword [esp + 0x40]
add esp, 4
mov dword [0x5a35ec], eax
jmp 0x409a2c
push 0x7dd5cc
push 0x7d98a0
mov dword [esp + 0x44], ecx
call fcn.0040af10
mov ecx, dword [esp + 0x44]
add esp, 8
jmp 0x409a1f
push 0x40000
mov dword [esp + 0x40], ecx
call fcn.00458ddc
mov ecx, dword [esp + 0x40]
add esp, 4
mov dword [0x5a35e8], eax
jmp 0x409a17
push 0x7dd5cc
push 0x7d98a0
mov dword [esp + 0x44], ecx
call fcn.0040af10
mov ecx, dword [esp + 0x44]
add esp, 8
jmp 0x409a0a
push 0x100000
mov dword [esp + 0x40], ecx
call fcn.00458ddc
mov ecx, dword [esp + 0x40]
add esp, 4
mov dword [0x5a35e4], eax
jmp 0x409a02
push 0x7dd5cc
push 0x7d98a0
mov dword [esp + 0x44], ecx
call fcn.0040af10
mov ecx, dword [esp + 0x44]
add esp, 8
jmp 0x4099f5
push 0x400000
mov dword [esp + 0x40], ecx
call fcn.00458ddc
mov ecx, dword [esp + 0x40]
add esp, 4
mov dword [0x5a35e0], eax
jmp 0x4099ed
push 0x7dd5cc
push 0x7d98a0
mov dword [esp + 0x44], ecx
call fcn.0040af10
mov ecx, dword [esp + 0x44]
add esp, 8
jmp 0x4099e0
push dword [0x586084]
mov dword [esp + 0x40], ecx
call fcn.00458ddc
mov ecx, dword [esp + 0x40]
add esp, 4
mov dword [0x5a35dc], eax
jmp 0x4099d8
push edi
mov eax, dword [esp + 0x44]
push eax
mov edx, dword [esp + 0xc4]
push edx
push 0x7dd598
push 0x7d98a0
call fcn.0040af10
mov eax, 0xffffffff
add esp, 0x10c
pop ebx
pop ebp
pop esi
pop edi
ret
xor ecx, ecx
jmp 0x4099c1
xor eax, eax
push eax
push eax
push 0x7dd580
push eax
call dword [sym.imp.USER32.dll_MessageBoxA]
mov eax, 0xffffffff
add esp, 0xf8
pop ebx
pop ebp
pop esi
pop edi
ret
mov edx, 8
mov dword [esp + 0xe4], edx
jmp 0x409850
mov edx, 7
mov dword [esp + 0xe4], edx
jmp 0x409850
mov edx, 6
mov dword [esp + 0xe4], edx
jmp 0x409850
mov edx, 5
mov dword [esp + 0xe4], edx
jmp 0x409850
mov edx, 4
mov dword [esp + 0xe4], edx
jmp 0x409850
mov edx, 3
mov dword [esp + 0xe4], edx
jmp 0x409850
mov edx, 2
mov dword [esp + 0xe4], edx
jmp 0x409850