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

Disassembly:
push ebp
sub esp, 0x60
push 0x464
mov eax, 0x818209b
call fcn.08047fad
mov esi, ecx
mov dword [ebp - 0x70], esi
xor edi, edi
mov dword [ebp + 0x60], edi
mov eax, dword [ebp + 0x74]
mov dword [esi], vtable.StringDecoderKey.0
mov ecx, dword [eax + 4]
mov dword [esi + 4], ecx
mov eax, dword [eax + 8]
mov dword [esi + 8], eax
mov eax, dword [ebp + 0x6c]
mov dword [esi], vtable.StringDecoderCache.0
mov dword [esi + 0x18], eax
mov dword [ebp - 4], edi
mov dword [esi + 0x1c], edi
mov dword [esi + 0x20], edi
mov dword [esi + 0x30], edi
mov dword [esi + 0x34], edi
mov dword [esi + 0x38], edi
mov dword [esi + 0x3c], edi
mov dword [esi + 0x5c], edi
mov dword [esi + 0x60], edi
mov dword [esi + 0x64], edi
mov dword [esi + 0x68], edi
mov dword [esi + 0x70], edi
mov dword [esi + 0x74], edi
mov dword [esi + 0x7c], edi
mov ebx, dword [ebp + 0x70]
push ebx
mov ecx, esi
mov byte [ebp - 4], 9
mov dword [ebp + 0x5c], ebx
mov dword [ebp + 0x40], edi
call fcn.08037492
mov eax, dword [ebx + 0x30]
mov dword [ebp + 0x44], edi
mov dword [ebp + 0x74], eax
mov dword [ebp + 0x30], edi
mov eax, dword [esi + 0x18]
cmp eax, edi
mov dword [ebp + 0x38], eax
je 0x8037ff2
add eax, 4
mov dword [ebp + 0x6c], eax
mov eax, dword [ebp + 0x6c]
lock inc dword [eax]
mov eax, dword [ebp + 0x38]
mov ecx, dword [esi + 8]
push dword [eax + 0x200]
shr ecx, 1
and cl, 1
mov byte [ebp + 0x48], cl
mov cl, byte [esi + 8]
and cl, 1
mov byte [ebp - 4], 0xb
lea ebx, [ebp + 0x38]
mov byte [ebp + 0x3f], cl
call fcn.0802341c
pop ecx
mov ecx, dword [ebp + 0x70]
mov byte [ebp + 0x6f], al
lea eax, [ebp + 0x20]
push eax
call fcn.0802343b
push eax
mov byte [ebp - 4], 0xc
call fcn.0802dc64
cmp dword [ebp + 0x20], edi
movzx eax, al
pop ecx
mov dword [ebp + 0x2c], eax
mov byte [ebp - 4], 0xb
je 0x803804c
push dword [ebp + 0x20]
call dword [0x8231224]
pop ecx
cmp dword [ebp + 0x2c], edi
jne 0x803810a
push 3
call fcn.0802dd28
cmp dword [ebp + 0x70], eax
pop ecx
je 0x8038115
mov eax, dword [ebp + 0x38]
cmp dword [eax + 0x6c], 2
jne 0x8038115
cmp dword [eax + 0x70], 1
je 0x8038115
push edi
push 1
push 0x823a930
lea eax, [ebp + 0x38]
push eax
lea ecx, [ebp + 0x28]
call fcn.0809050a
push edi
push 1
push 0x823a938
lea eax, [ebp + 0x38]
push eax
lea ecx, [ebp + 0x34]
mov byte [ebp - 4], 0xd
call fcn.0809050a
push edi
lea ecx, [ebp + 0x28]
mov byte [ebp - 4], 0xe
call fcn.08022a7f
mov edx, dword [eax]
mov ecx, eax
call dword [edx + 4]
mov eax, dword [eax + 4]
cmp eax, dword [0x823a87c]
jne 0x80380e8
push edi
lea ecx, [ebp + 0x34]
call fcn.08022a7f
mov edx, dword [eax]
mov ecx, eax
call dword [edx + 4]
mov eax, dword [eax + 4]
cmp eax, dword [0x823a88c]
jne 0x80380e8
call fcn.0809d3cf
mov ecx, dword [ebp + 0x34]
cmp ecx, edi
mov byte [ebp - 4], 0xd
je 0x80380f8
call fcn.08022a58
mov ecx, dword [ebp + 0x28]
cmp ecx, edi
mov byte [ebp - 4], 0xb
je 0x8038115
call fcn.08022a58
jmp 0x8038115
mov ecx, dword [ebp + 0x70]
call fcn.080d94dd
mov byte [ebp + 0x48], al
cmp dword [ebp + 0x74], 0x40000000
mov al, byte [ebp + 0x48]
mov byte [esi + 0x25], al
jne 0x8038959
mov ecx, dword [ebp + 0x5c]
mov eax, dword [ecx + 0x2c]
cmp eax, 3
je 0x80395a6
cmp eax, 4
je 0x80395a6
mov edx, dword [ebx]
mov eax, dword [edx + 0x6c]
sub eax, edi
je 0x80393c8
dec eax
je 0x803846d
dec eax
jne 0x8038a58
cmp byte [ecx + 0x38], al
jne 0x80393ce
cmp byte [ebp + 0x3f], al
je 0x803842c
cmp byte [edx + 0xa8], al
je 0x803842c
mov eax, dword [esi + 0x40]
cmp eax, 0xffffd8f1
je 0x8038351
cmp eax, 0xffffd8f2
je 0x80382c1
cmp eax, 0xffffd8f3
je 0x8038238
cmp eax, 0xffffd8f4
jne 0x803842c
lea eax, [ebp - 0x54]
push eax
call fcn.0802343b
or dword [ebp + 0x60], 0x100
cmp dword [eax], edi
mov byte [ebp - 4], 0x29
je 0x80381eb
mov ecx, dword [ebp + 0x5c]
lea eax, [ebp - 0x24]
push eax
call fcn.0802343b
mov eax, dword [eax + 4]
or dword [ebp + 0x60], 0x200
push str.B5pc_EUC_H
push eax
call sub.MSVCR80.dll_strcmp
test eax, eax
pop ecx
pop ecx
mov byte [ebp + 0x77], 0
jne 0x80381ef
mov byte [ebp + 0x77], 1
test word [ebp + 0x60], 0x200
je 0x803820d
and dword [ebp + 0x60], 0xfffffdff
cmp dword [ebp - 0x24], edi
je 0x803820d
push dword [ebp - 0x24]
call dword [0x8231224]
pop ecx
test word [ebp + 0x60], 0x100
mov dword [ebp - 4], 0xb
je 0x80383ce
and dword [ebp + 0x60], 0xfffffeff
cmp dword [ebp - 0x54], edi
je 0x80383ce
push dword [ebp - 0x54]
jmp 0x80383c7
mov ecx, dword [ebp + 0x5c]
lea eax, [ebp - 0x6c]
push eax
call fcn.0802343b
or dword [ebp + 0x60], 0x40
cmp dword [eax], edi
mov byte [ebp - 4], 0x28
je 0x803827b
mov ecx, dword [ebp + 0x5c]
lea eax, [ebp - 0x34]
push eax
call fcn.0802343b
mov eax, dword [eax + 4]
or dword [ebp + 0x60], 0x80
push str.KSCpc_EUC_H
push eax
call sub.MSVCR80.dll_strcmp
test eax, eax
pop ecx
pop ecx
mov byte [ebp + 0x77], 0
jne 0x803827f
mov byte [ebp + 0x77], 1
test byte [ebp + 0x60], 0x80
je 0x803829b
and dword [ebp + 0x60], 0xffffff7f
cmp dword [ebp - 0x34], edi
je 0x803829b
push dword [ebp - 0x34]
call dword [0x8231224]
pop ecx
test byte [ebp + 0x60], 0x40
mov dword [ebp - 4], 0xb
je 0x80383ce
and dword [ebp + 0x60], 0xffffffbf
cmp dword [ebp - 0x6c], edi
je 0x80383ce
push dword [ebp - 0x6c]
jmp 0x80383c7
mov ecx, dword [ebp + 0x5c]
lea eax, [ebp - 0x14]
push eax
call fcn.0802343b
or dword [ebp + 0x60], 0x400
cmp dword [eax], edi
mov byte [ebp - 4], 0x2a
je 0x8038307
mov ecx, dword [ebp + 0x5c]
lea eax, [ebp - 0x44]
push eax
call fcn.0802343b
mov eax, dword [eax + 4]
or dword [ebp + 0x60], 0x800
push str.GBpc_EUC_H
push eax
call sub.MSVCR80.dll_strcmp
test eax, eax
pop ecx
pop ecx
mov byte [ebp + 0x77], 0
jne 0x803830b
mov byte [ebp + 0x77], 1
test word [ebp + 0x60], 0x800
je 0x8038329
and dword [ebp + 0x60], 0xfffff7ff
cmp dword [ebp - 0x44], edi
je 0x8038329
push dword [ebp - 0x44]
call dword [0x8231224]
pop ecx
test word [ebp + 0x60], 0x400
mov dword [ebp - 4], 0xb
je 0x80383ce
and dword [ebp + 0x60], 0xfffffbff
cmp dword [ebp - 0x14], edi
je 0x80383ce
push dword [ebp - 0x14]
jmp 0x80383c7
mov ecx, dword [ebp + 0x5c]
lea eax, [ebp - 0x2c]
push eax
call fcn.0802343b
or dword [ebp + 0x60], 0x10
cmp dword [eax], edi
mov byte [ebp - 4], 0x27
je 0x8038391
mov ecx, dword [ebp + 0x5c]
lea eax, [ebp - 0x1c]
push eax
call fcn.0802343b
mov eax, dword [eax + 4]
or dword [ebp + 0x60], 0x20
push str.83pv_RKSJ_H
push eax
call sub.MSVCR80.dll_strcmp
test eax, eax
pop ecx
pop ecx
mov byte [ebp + 0x77], 1
je 0x8038395
mov byte [ebp + 0x77], 0
test byte [ebp + 0x60], 0x20
je 0x80383ae
and dword [ebp + 0x60], 0xffffffdf
cmp dword [ebp - 0x1c], edi
je 0x80383ae
push dword [ebp - 0x1c]
call dword [0x8231224]
pop ecx
test byte [ebp + 0x60], 0x10
mov dword [ebp - 4], 0xb
je 0x80383ce
and dword [ebp + 0x60], 0xffffffef
cmp dword [ebp - 0x2c], edi
je 0x80383ce
push dword [ebp - 0x2c]
call dword [0x8231224]
pop ecx
cmp byte [ebp + 0x77], 0
je 0x803842c
lea eax, [ebp + 0x4c]
push eax
lea eax, [ebp + 0x54]
push eax
lea eax, [ebp + 0x58]
push eax
lea eax, [ebp + 0x50]
push eax
push dword [esi + 0x40]
mov ecx, esi
push ebx
call fcn.080d95a3
test al, al
je 0x803842c
mov eax, dword [ebx]
push 1
lea ecx, [ebp + 0x40]
push ecx
push dword [ebp + 0x4c]
add eax, 0x64
push dword [ebp + 0x54]
push dword [ebp + 0x58]
push eax
call fcn.080155e2
add esp, 0x18
push eax
lea ecx, [esi + 0x1c]
call fcn.0802bf22
cmp dword [esi + 0x1c], edi
jne 0x8038e18
cmp byte [esi + 0x56], 0
jne 0x8038a2e
cmp byte [ebp + 0x6f], 0
je 0x8038e24
mov ecx, dword [ebx]
cmp byte [ecx + 0xa8], 0
je 0x8038e24
cmp byte [esi + 0x56], 0
jne 0x8038e24
mov eax, dword [ebp + 0x5c]
cmp dword [eax + 0x28], edi
jne 0x8038e24
push 0x823a920
call fcn.080977dc
test eax, eax
je 0x8038e24
mov ecx, dword [ebx]
push edi
push 1
push 0x823a920
call fcn.080258b9
mov dword [ebp + 0x34], eax
push edi
lea ecx, [ebp + 0x34]
mov byte [ebp - 4], 0x22
call fcn.08022a7f
test eax, eax
jne 0x80384ae
cmp dword [ebp + 0x2c], edi
je 0x80384ae
mov eax, dword [ebp + 0x5c]
cmp byte [eax + 0x35], 0
je 0x80384ae
mov byte [esi + 0x55], 1
mov dword [esi + 0xc], 0x80db4f0
jmp 0x80388b4
push dword [ebp + 0x5c]
mov ecx, esi
push ebx
call fcn.080376d9
test eax, eax
jne 0x80388b4
mov edi, dword [ebp + 0x5c]
mov ecx, dword [ebx]
lea eax, [ebp + 0x44]
push eax
lea eax, [ebp + 0x4c]
push eax
lea eax, [ebp + 0x54]
push eax
lea eax, [ebp + 0x58]
push eax
lea eax, [ebp + 0x50]
push eax
push edi
call fcn.080265b5
test eax, eax
je 0x80388af
mov eax, dword [edi + 0x20]
test eax, eax
je 0x80384f4
cmp eax, 0xffffffff
jne 0x8038533
cmp dword [ebp + 0x50], 0
jne 0x8038533
cmp byte [esi + 0x51], 0
jne 0x8038533
lea edi, [esi + 0x30]
push pe_nt_image_headers32
mov ecx, edi
call fcn.08025007
push dword [ebp + 0x54]
mov ecx, dword [edi]
push dword [ebp + 0x58]
mov eax, dword [ebx]
push ecx
add eax, 0x64
push eax
call fcn.080813b2
add esp, 0x10
test al, al
jne 0x8038533
push 0
mov ecx, edi
call fcn.08025007
cmp dword [esi + 0x30], 0
jne 0x80388b4
mov eax, dword [ebx]
push 1
lea ecx, [ebp + 0x40]
push ecx
push dword [ebp + 0x4c]
add eax, 0x64
push dword [ebp + 0x54]
push dword [ebp + 0x58]
push eax
call fcn.080155e2
add esp, 0x18
lea edi, [esi + 0x1c]
push eax
mov ecx, edi
call fcn.0802bf22
cmp dword [edi], 0
je 0x80388af
mov edi, dword [ebp + 0x5c]
cmp dword [edi + 0x20], 0
je 0x803857d
cmp byte [edi + 0x38], 0
jne 0x80385a0
cmp dword [ebp + 0x50], 4
je 0x8038589
cmp dword [ebp + 0x50], 6
jne 0x80385a0
cmp dword [ebp + 0x58], 1
jne 0x80385a0
push dword [ebp + 0x54]
call fcn.0802b781
test al, al
pop ecx
jne 0x80389a7
cmp dword [edi + 0x2c], 0
jne 0x80385c6
push 0
call fcn.0802dd28
cmp edi, eax
pop ecx
je 0x80385c6
cmp dword [ebp + 0x2c], 0
je 0x8038648
cmp byte [ebp + 0x6f], 0
je 0x8038648
push dword [ebp + 0x54]
push dword [ebp + 0x58]
call fcn.080238b9
test al, al
pop ecx
pop ecx
je 0x8038648
cmp dword [ebp + 0x2c], 0
mov byte [esi + 0x53], 1
je 0x80385eb
cmp byte [ebp + 0x6f], 0
jne 0x8038ae9
mov eax, dword [ebx]
cmp byte [eax + 0x120], 0
je 0x803863c
cmp dword [edi + 0x2c], 1
je 0x803863c
mov edi, dword [ebp + 0x70]
mov eax, dword [edi + 0x30]
cmp eax, 0x40000000
je 0x80386f7
push eax
call fcn.0812ef4a
test al, al
pop ecx
je 0x80386f7
mov edi, dword [edi + 0x30]
lea eax, [ebp + 0x1c]
push eax
push edi
call fcn.0812ed80
test al, al
pop ecx
pop ecx
je 0x80386f7
mov ax, word [ebp + 0x1c]
jmp 0x8038701
mov dword [ebp + 0x44], 1
jmp 0x80388b4
cmp dword [ebp + 0x58], 3
jne 0x80386af
mov eax, dword [ebp + 0x54]
test eax, eax
jne 0x8038693
push dword [esi + 0x1c]
call fcn.080d8b99
cmp byte [esi + 0x51], 0
pop ecx
mov byte [esi + 0x50], al
je 0x8038687
test al, al
mov ecx, esi
je 0x803867b
push 0
push dword [ebp + 0x58]
push 1
push 0
jmp 0x8038984
push 1
xor eax, eax
push eax
push eax
push eax
jmp 0x8038984
mov dword [esi + 0xc], 0x80d9739
jmp 0x80388b4
lea ecx, [eax - 2]
cmp ecx, 4
ja 0x80386af
cmp dword [ebp + 0x50], 4
je 0x8038b00
cmp dword [ebp + 0x50], 2
je 0x8038b00
mov eax, dword [ebx]
cmp byte [eax + 0x120], 0
je 0x8038711
push 2
call fcn.0802dd28
cmp edi, eax
pop ecx
jne 0x8038711
mov edi, dword [ebp + 0x70]
mov eax, dword [edi + 0x30]
cmp eax, 0x40000000
je 0x80386f7
push eax
call fcn.0812ef4a
test al, al
pop ecx
je 0x80386f7
mov edi, dword [edi + 0x30]
lea eax, [ebp + 0xc]
push eax
push edi
call fcn.0812ed80
test al, al
pop ecx
pop ecx
je 0x80386f7
mov ax, word [ebp + 0xc]
jmp 0x8038701
mov eax, dword [ebx]
movzx ax, byte [eax + 0xdb]
mov word [esi + 0x2c], ax
mov dword [esi + 0xc], 0x8037f2a
jmp 0x80388b4
cmp dword [ebp + 0x2c], 0
je 0x8038721
cmp byte [ebp + 0x6f], 0
jne 0x8038b83
push dword [ebp + 0x48]
mov ecx, esi
push dword [ebp + 0x54]
push dword [ebp + 0x58]
call fcn.080d8c24
cmp dword [ebp + 0x58], 1
jne 0x80387ac
cmp dword [ebp + 0x54], 1
jne 0x80387ac
cmp byte [edi + 0x35], 0
je 0x80387ac
lea eax, [ebp - 0x5c]
push eax
mov ecx, edi
call fcn.0802343b
or dword [ebp + 0x60], 1
cmp dword [eax], 0
mov byte [ebp - 4], 0x23
je 0x80387ac
lea eax, [ebp - 0x4c]
push eax
mov ecx, edi
call fcn.0802343b
mov eax, dword [eax + 4]
or dword [ebp + 0x60], 2
push str.90pv_RKSJ_H
push eax
mov dword [ebp - 4], 0x24
call sub.MSVCR80.dll_strcmp
test eax, eax
pop ecx
pop ecx
je 0x80387ac
lea eax, [ebp - 0x3c]
push eax
mov ecx, edi
call fcn.0802343b
mov eax, dword [eax + 4]
or dword [ebp + 0x60], 4
push str.90pv_RKSJ_V
push eax
call sub.MSVCR80.dll_strcmp
test eax, eax
pop ecx
pop ecx
mov byte [ebp + 0x77], 1
jne 0x80387b0
mov byte [ebp + 0x77], 0
xor edi, edi
test byte [ebp + 0x60], 4
je 0x80387cb
and dword [ebp + 0x60], 0xfffffffb
cmp dword [ebp - 0x3c], edi
je 0x80387cb
push dword [ebp - 0x3c]
call dword [0x8231224]
pop ecx
test byte [ebp + 0x60], 2
mov dword [ebp - 4], 0x23
je 0x80387eb
and dword [ebp + 0x60], 0xfffffffd
cmp dword [ebp - 0x4c], edi
je 0x80387eb
push dword [ebp - 0x4c]
call dword [0x8231224]
pop ecx
test byte [ebp + 0x60], 1
mov dword [ebp - 4], 0x22
je 0x803880b
and dword [ebp + 0x60], 0xfffffffe
cmp dword [ebp - 0x5c], edi
je 0x803880b
push dword [ebp - 0x5c]
call dword [0x8231224]
pop ecx
cmp byte [ebp + 0x77], 0
je 0x8038975
push ecx
push ecx
mov ecx, esp
mov dword [ebp + 0x74], esp
call fcn.08001057
mov ecx, dword [ebx]
push 1
push dword [ebp + 0x48]
lea eax, [ebp + 4]
push eax
call fcn.08097f50
lea edi, [esi + 0x5c]
push eax
mov ecx, edi
mov byte [ebp - 4], 0x25
call fcn.08022bb9
lea ecx, [ebp + 4]
mov byte [ebp - 4], 0x22
call fcn.08022b67
cmp dword [edi], 0
je 0x8038894
push 0x44
call fcn.08001394
pop ecx
mov dword [ebp + 0x74], eax
test eax, eax
mov byte [ebp - 4], 0x26
je 0x8038872
push 0
push 0
push edi
mov ecx, eax
call fcn.080d6717
jmp 0x8038874
xor eax, eax
mov dword [ebp + 0x74], eax
lea eax, [ebp + 0x74]
push eax
lea ecx, [esi + 0x70]
mov byte [ebp - 4], 0x22
call fcn.080d93f8
mov ecx, dword [ebp + 0x74]
test ecx, ecx
je 0x8038894
mov eax, dword [ecx]
push 1
call dword [eax]
mov eax, dword [ebp + 0x5c]
add eax, 0x28
push eax
mov ecx, edi
call fcn.08022bb9
cmp dword [esi + 0x70], 0
mov dword [esi + 0xc], 0x80da5d9
jne 0x80388b4
call fcn.0809d3cf
cmp dword [ebp + 0x44], 0
je 0x80393af
mov edi, dword [ebp + 0x5c]
cmp byte [edi + 0x35], 0
je 0x80388df
lea eax, [ebp - 0x64]
push eax
mov ecx, edi
call fcn.0802343b
or dword [ebp + 0x60], 8
cmp dword [eax], 0
mov byte [ebp + 0x77], 1
jne 0x80388e3
mov byte [ebp + 0x77], 0
test byte [ebp + 0x60], 8
je 0x80388fd
and dword [ebp + 0x60], 0xfffffff7
cmp dword [ebp - 0x64], 0
je 0x80388fd
push dword [ebp - 0x64]
call dword [0x8231224]
pop ecx
cmp byte [ebp + 0x77], 0
je 0x80392b4
mov eax, dword [edi + 0x28]
mov eax, dword [eax + 0x10c]
cmp eax, 0x40000000
mov dword [ebp + 0x74], eax
je 0x803929f
push eax
call fcn.080e1065
test eax, eax
pop ecx
je 0x803929f
lea edi, [esi + 0x1c]
cmp dword [edi], 0
je 0x8038943
mov ecx, edi
call fcn.08014e5d
and dword [edi], 0
and dword [ebp + 0x40], 0
mov ecx, dword [ebp + 0x34]
test ecx, ecx
mov eax, dword [ebp + 0x74]
mov dword [esi + 0x40], eax
mov byte [ebp - 4], 0xb
je 0x8038959
call fcn.08022a58
mov ecx, dword [ebx]
lea eax, [ebp + 0x14]
push eax
push dword [ebp + 0x74]
call fcn.08026026
test eax, eax
jne 0x80389bf
call fcn.0809d3cf
jmp 0x8038a05
cmp byte [esi + 0x51], 0
je 0x8038995
push edi
push dword [ebp + 0x58]
mov ecx, esi
push 1
push edi
call fcn.080dae04
mov dword [esi + 0xc], 0x80db0c9
jmp 0x80388b4
cmp dword [ebp + 0x58], 1
jne 0x80389b3
cmp dword [ebp + 0x50], 4
je 0x80389a7
cmp dword [ebp + 0x50], 6
jne 0x80389b3
mov dword [esi + 0xc], fcn.080d971f
jmp 0x80388b4
mov dword [esi + 0xc], fcn.080da5b4
jmp 0x80388b4
test byte [ebp + 0x14], 2
je 0x80389c9
push 3
jmp 0x80389fc
push dword [ebp + 0x74]
call fcn.0812ef4a
xor ecx, ecx
test al, al
mov eax, dword [ebx]
mov eax, dword [eax + 0x200]
setne cl
inc ecx
mov edi, ecx
push edi
push eax
call fcn.080413ec
add esp, 0xc
cmp dword [ebp + 0x74], eax
jne 0x8038a0c
cmp edi, 1
jne 0x80389fa
push edi
jmp 0x80389fc
push 2
call fcn.0802dd28
pop ecx
mov dword [ebp + 0x5c], eax
xor edi, edi
jmp 0x8038128
mov eax, dword [ebx]
mov ecx, dword [eax + 0x6c]
xor edi, edi
cmp ecx, edi
jl 0x8038a2e
cmp ecx, 2
jle 0x8038ed6
cmp ecx, 3
je 0x8038a38
cmp ecx, 4
je 0x8038128
call fcn.0809d3cf
jmp 0x8039d40
cmp dword [ebp + 0x74], 0x186a2
jne 0x8038a4e
cmp dword [eax + 0x200], 1
je 0x8038e9d
call fcn.0809d3cf
jmp 0x8038128
dec eax
je 0x8038db0
dec eax
je 0x8038b8a
dec eax
jne 0x8039d40
mov ecx, dword [ecx + 0xc]
cmp ecx, edi
je 0x8038a2e
mov dword [ebp + 0x70], edi
push edi
lea eax, [ebp - 0x470]
push eax
mov ebx, edx
push ecx
push ebx
mov byte [ebp - 4], 0x21
call fcn.080a96c5
lea eax, [ebp - 0x470]
push eax
push edi
call fcn.080b5842
add esp, 0x18
push eax
lea ecx, [ebp + 0x70]
call fcn.08023dbd
push edi
lea ecx, [ebp + 0x70]
call fcn.08022a7f
test eax, eax
jne 0x8038abd
push 0x81ba788
call fcn.0809d433
pop ecx
lea ebx, [esi + 0x30]
push pe_nt_image_headers32
mov ecx, ebx
call fcn.08025007
push edi
lea ecx, [ebp + 0x70]
call fcn.08022a7f
mov ebx, dword [ebx]
mov edx, dword [eax]
push ebx
mov ecx, eax
call dword [edx + 0xc]
mov ecx, dword [ebp + 0x70]
cmp ecx, edi
jmp 0x80393b4
push 1
push dword [ebp + 0x48]
mov ecx, esi
push edi
push ebx
call fcn.080db61c
and dword [ebp + 0x44], 0
jmp 0x80393af
and dword [ebp + 0x44], 0
cmp dword [ebp + 0x2c], 0
je 0x8038b2d
cmp byte [ebp + 0x6f], 0
je 0x8038b2d
push 0
push dword [ebp + 0x48]
mov ecx, esi
push edi
push ebx
mov word [esi + 0x78], 1
call fcn.080db61c
and dword [ebp + 0x44], 0
mov eax, dword [ebp + 0x54]
jmp 0x8038b52
cmp dword [edi + 0x2c], 1
jne 0x8038b4b
cmp eax, 2
jne 0x8038b4b
mov dword [esi + 0xc], fcn.080da9b4
mov dword [esi + 0x10], fcn.080d8dc4
jmp 0x80393af
mov dword [esi + 0xc], fcn.080da843
cmp eax, 2
je 0x8038b3f
jle 0x80393af
cmp eax, 4
jle 0x8038b77
cmp eax, 6
jg 0x80393af
mov dword [esi + 0x10], fcn.080d8e0a
jmp 0x80393af
mov dword [esi + 0x10], fcn.080d8dfb
jmp 0x80393af
push 0
jmp 0x8038aeb
push edi
push 1
push 0x823aaf0
push ebx
lea ecx, [ebp + 0x30]
call fcn.08097343
push edi
lea ecx, [ebp + 0x30]
call fcn.08022a7f
mov edx, dword [eax]
mov ecx, eax
call dword [edx + 4]
cmp byte [eax + 0x20], 0
mov dword [ebp + 0x74], eax
je 0x8038bdc
push dword [esi + 0x40]
lea ebx, [esi + 0x64]
call fcn.080e1065
pop ecx
push eax
mov ecx, ebx
call fcn.080da032
cmp dword [ebx], edi
je 0x8038a2e
mov dword [esi + 0xc], 0x80d9d9a
jmp 0x8039d40
mov eax, dword [ebp + 0x5c]
mov eax, dword [eax + 0x30]
mov ecx, 0x40000000
cmp eax, ecx
je 0x8038bf0
mov dword [ebp + 0x70], eax
jmp 0x8038bfe
mov eax, dword [esi + 0x40]
cmp eax, dword [esi + 0x44]
mov dword [ebp + 0x70], eax
jne 0x8038bfe
mov dword [ebp + 0x70], ecx
push dword [ebp + 0x48]
mov ecx, dword [ebx]
push dword [ebp + 0x70]
lea eax, [ebp]
push dword [ebp + 0x5c]
push eax
call fcn.080986a0
lea edi, [esi + 0x5c]
push eax
mov ecx, edi
mov byte [ebp - 4], 0x2c
call fcn.08022bb9
lea ecx, [ebp]
mov byte [ebp - 4], 0xb
call fcn.08022b67
mov eax, dword [ebp + 0x5c]
cmp dword [eax + 0x28], 0
jne 0x8038cc1
cmp dword [ebp + 0x70], 0x40000000
jne 0x8038cc1
mov eax, dword [edi]
test eax, eax
je 0x8038cc1
cmp byte [eax + 0x110], 0
je 0x8038cc1
mov ecx, dword [ebp + 0x74]
push ebx
push 0
call fcn.080b50d7
push dword [ebp + 0x48]
mov ecx, dword [eax]
push 0x40000000
push dword [ebp + 0x5c]
mov dword [ebp + 0x70], eax
lea eax, [ebp + 0x10]
push eax
call fcn.080986a0
push eax
mov ecx, edi
mov byte [ebp - 4], 0x2d
call fcn.08022bb9
lea ecx, [ebp + 0x10]
mov byte [ebp - 4], 0xb
call fcn.08022b67
cmp dword [edi], 0
jne 0x8038cca
mov eax, dword [ebp + 0x70]
mov ecx, dword [eax]
push 0
push dword [ebp + 0x48]
lea eax, [ebp + 8]
push dword [esi + 0x40]
push eax
call fcn.080982f5
push eax
mov ecx, edi
mov byte [ebp - 4], 0x2e
call fcn.08022bb9
lea ecx, [ebp + 8]
mov byte [ebp - 4], 0xb
call fcn.08022b67
cmp dword [edi], 0
je 0x8038d80
push ecx
push ecx
mov ecx, esp
mov dword [ebp + 0x70], esp
call fcn.08001057
mov ecx, dword [ebx]
push 0
push dword [ebp + 0x48]
lea eax, [ebp + 0x70]
push eax
call fcn.08097f50
mov eax, dword [ebp + 0x70]
cmp dword [edi], eax
mov byte [ebp - 4], 0x2f
jne 0x8038d09
mov dword [esi + 0xc], fcn.080d9a3c
lea ecx, [ebp + 0x70]
mov byte [ebp - 4], 0xb
call fcn.08022b67
jmp 0x8039d40
test eax, eax
je 0x8038d53
push 0x44
call fcn.08001394
pop ecx
mov dword [ebp + 0x74], eax
test eax, eax
mov byte [ebp - 4], 0x30
je 0x8038d31
push 0
push 1
lea ecx, [ebp + 0x70]
push ecx
mov ecx, eax
call fcn.080d6717
jmp 0x8038d33
xor eax, eax
mov dword [ebp + 0x74], eax
lea eax, [ebp + 0x74]
push eax
lea ecx, [esi + 0x70]
mov byte [ebp - 4], 0x2f
call fcn.080d93f8
mov ecx, dword [ebp + 0x74]
test ecx, ecx
je 0x8038d53
mov eax, dword [ecx]
push 1
call dword [eax]
cmp dword [esi + 0x70], 0
je 0x8038d74
mov eax, dword [ebp + 0x70]
cmp byte [eax + 0x110], 0
je 0x8038d74
mov ebx, dword [ebx]
cmp dword [ebx + 0x200], 1
jne 0x8038d74
mov byte [esi + 0x57], 1
lea ecx, [ebp + 0x70]
mov byte [ebp - 4], 0xb
call fcn.08022b67
cmp dword [esi + 0x70], 0
je 0x8038da4
push 0
lea ecx, [ebp + 0x30]
mov dword [esi + 0xc], fcn.080d9b1a
call fcn.08022a7f
push eax
mov ecx, esi
call fcn.080d9817
jmp 0x8039d40
mov dword [esi + 0xc], fcn.080d9a3c
jmp 0x8039d40
mov eax, edx
push dword [eax + 0x200]
call fcn.0802b781
test al, al
pop ecx
je 0x8038de0
mov ebx, pe_nt_image_headers32
lea ecx, [esi + 0x30]
push ebx
call fcn.08025007
mov eax, dword [esi + 0x30]
mov dword [eax + edi*4], edi
inc edi
cmp edi, ebx
jl 0x8038dd0
jmp 0x8039d40
cmp dword [ebp + 0x2c], edi
mov eax, dword [ebx]
movzx ax, byte [eax + 0xdb]
mov word [esi + 0x2c], ax
je 0x8038e0c
cmp byte [ebp + 0x6f], 0
je 0x8038e0c
push dword [ebp + 0x48]
mov ecx, esi
push dword [ebp + 0x5c]
push ebx
call fcn.080d9e6f
jmp 0x8039d40
mov dword [esi + 0xc], fcn.080d8e95
jmp 0x8039d40
mov dword [esi + 0xc], fcn.080da5b4
jmp 0x8039d40
mov eax, dword [ebp + 0x5c]
mov eax, dword [eax + 0x30]
mov ecx, 0x40000000
cmp eax, ecx
jne 0x8038e3d
mov eax, dword [esi + 0x40]
cmp eax, dword [esi + 0x44]
jne 0x8038e3d
mov eax, ecx
push dword [ebp + 0x48]
mov ebx, dword [ebx]
push eax
push dword [ebp + 0x5c]
lea eax, [ebp + 0x24]
push eax
mov ecx, ebx
call fcn.080986a0
lea ebx, [esi + 0x5c]
push eax
mov ecx, ebx
mov byte [ebp - 4], 0x2b
call fcn.08022bb9
lea ecx, [ebp + 0x24]
mov byte [ebp - 4], 0xb
call fcn.08022b67
cmp dword [ebx], edi
je 0x8038e8c
cmp byte [ebp + 0x48], 0
je 0x8038e85
push ebx
call fcn.080d9520
test eax, eax
pop ecx
je 0x8038e85
mov al, 1
jmp 0x8038e87
xor al, al
mov byte [esi + 0x27], al
jmp 0x8038e91
call fcn.0809d3cf
mov dword [esi + 0xc], fcn.080d994f
jmp 0x8039d40
push 0x186a2
lea ebx, [esi + 0x64]
call fcn.080e1065
pop ecx
push eax
mov ecx, ebx
call fcn.080da032
cmp dword [ebx], edi
jne 0x8038ebc
call fcn.0809d3cf
mov dword [esi + 0x10], fcn.080d8dc4
mov dword [esi + 0x14], fcn.080d8e95
mov dword [esi + 0xc], 0x80d931f
jmp 0x8039d40
cmp dword [eax + 0x70], 1
jne 0x8038fa9
mov eax, dword [ebp + 0x74]
cmp eax, 0xd698
je 0x8038ef1
cmp eax, 0x186a0
jne 0x8038efa
cmp dword [esi + 0x44], eax
jne 0x8038fa9
lea eax, [ebp + 0x4c]
push eax
lea eax, [ebp + 0x54]
push eax
lea eax, [ebp + 0x58]
push eax
push dword [ebp + 0x74]
mov dword [ebp + 0x70], edi
push edi
jmp 0x8038f99
push 0x3c
call fcn.08001394
pop ecx
mov dword [ebp + 0x6c], eax
cmp eax, edi
mov byte [ebp - 4], 0xf
je 0x8038f3b
push dword [ebp + 0x4c]
mov ecx, eax
push 0xffffffffffffffff
push dword [ebp + 0x54]
push dword [ebp + 0x58]
call fcn.080b89ca
mov edx, eax
jmp 0x8038f3d
xor edx, edx
cmp edx, edi
mov dword [ebp + 0x6c], edx
je 0x8038f50
lea eax, [edx + 4]
mov dword [ebp + 0x24], eax
mov eax, dword [ebp + 0x24]
lock inc dword [eax]
mov ecx, dword [ebx]
lea eax, [ebp + 0x44]
push eax
lea eax, [ebp + 0x4c]
push eax
lea eax, [ebp + 0x54]
push eax
lea eax, [ebp + 0x58]
push eax
lea eax, [ebp + 0x50]
push eax
push edx
mov byte [ebp - 4], 0x10
call fcn.080265b5
test eax, eax
jne 0x803900b
lea ecx, [ebp + 0x6c]
mov byte [ebp - 4], 0xb
call fcn.08023ffd
inc dword [ebp + 0x70]
lea eax, [ebp + 0x4c]
push eax
lea eax, [ebp + 0x54]
push eax
lea eax, [ebp + 0x58]
push eax
push dword [ebp + 0x74]
push dword [ebp + 0x70]
call fcn.08090813
add esp, 0x14
test eax, eax
jne 0x8038f12
mov ecx, dword [ebx]
cmp dword [ecx + 0x6c], 2
jne 0x80390c8
push 1
push dword [ebp + 0x48]
lea eax, [ebp + 0x28]
push dword [ebp + 0x74]
push eax
call fcn.080982f5
lea edi, [esi + 0x5c]
push eax
mov ecx, edi
mov byte [ebp - 4], 0x11
call fcn.08022bb9
lea ecx, [ebp + 0x28]
mov byte [ebp - 4], 0xb
call fcn.08022b67
cmp dword [edi], 0
jne 0x8038e91
cmp dword [ebp + 0x74], 0xd698
je 0x8039116
cmp dword [ebp + 0x74], 0x186a0
je 0x8039116
push 8
jmp 0x8039118
mov ebx, dword [ebx]
push 1
lea eax, [ebp + 0x40]
push eax
push dword [ebp + 0x4c]
add ebx, 0x64
push dword [ebp + 0x54]
push dword [ebp + 0x58]
push ebx
call fcn.080155e2
add esp, 0x18
push eax
lea ecx, [esi + 0x1c]
call fcn.0802bf22
cmp dword [ebp + 0x58], 3
mov eax, dword [ebp + 0x50]
jne 0x803905a
cmp dword [ebp + 0x54], 2
jne 0x803905a
cmp eax, 4
je 0x803904a
cmp eax, 2
jne 0x803905a
mov dword [esi + 0xc], fcn.080da843
mov dword [esi + 0x10], fcn.080d8dc4
jmp 0x803906e
cmp eax, 4
je 0x80390b8
cmp eax, 6
je 0x80390b8
mov dword [ebp + 0x58], edi
mov dword [esi + 0xc], fcn.080da5b4
mov eax, 0x186a2
cmp dword [ebp + 0x74], eax
jne 0x80390a7
push eax
lea ebx, [esi + 0x64]
call fcn.080e1065
pop ecx
push eax
mov ecx, ebx
call fcn.080da032
cmp dword [ebx], edi
jne 0x8039093
call fcn.0809d3cf
mov eax, dword [esi + 0xc]
mov dword [esi + 0x10], fcn.080d8dc4
mov dword [esi + 0x14], eax
mov dword [esi + 0xc], 0x80d931f
lea ecx, [ebp + 0x6c]
mov byte [ebp - 4], 0xb
call fcn.08023ffd
jmp 0x8039d40
mov dword [ebp + 0x58], 1
mov dword [esi + 0xc], fcn.080d971f
jmp 0x803906e
cmp dword [ecx + 0x6c], edi
jne 0x8038fea
cmp byte [ecx + 0xa8], 0
jne 0x8038fea
mov edi, dword [ebp + 0x74]
push edi
call fcn.080238da
cmp edi, 0xfffffc19
pop ecx
mov ebx, eax
je 0x8039105
cmp edi, 0x1869f
je 0x8039105
test ebx, ebx
jne 0x8039108
call fcn.0809d3cf
jmp 0x8039108
push 0xfffffffffffffffb
pop edi
push edi
push ebx
mov ecx, esi
call fcn.080dbcfa
jmp 0x8039d40
push 0xc
call fcn.0802dd28
pop ecx
mov ecx, dword [ebx]
lea edx, [ebp + 0x44]
push edx
lea edx, [ebp + 0x4c]
push edx
lea edx, [ebp + 0x54]
push edx
lea edx, [ebp + 0x58]
push edx
lea edx, [ebp + 0x50]
push edx
push eax
call fcn.080265b5
test eax, eax
je 0x8038a2e
push dword [ebp + 0x54]
push dword [ebp + 0x58]
call fcn.080238b9
test al, al
pop ecx
pop ecx
je 0x8038a2e
mov eax, dword [ebx]
push 1
lea ecx, [ebp + 0x40]
push ecx
push dword [ebp + 0x4c]
add eax, 0x64
push dword [ebp + 0x54]
push dword [ebp + 0x58]
push eax
call fcn.080155e2
add esp, 0x18
lea edi, [esi + 0x1c]
push eax
mov ecx, edi
call fcn.0802bf22
cmp dword [ebp + 0x74], 0x186a0
jne 0x80391ad
mov ebx, dword [ebx]
push 4
lea eax, [ebp + 0x6c]
push eax
push 0x823ab88
mov ecx, ebx
call fcn.08025e3b
test al, al
je 0x80391ad
cmp dword [ebp + 0x6c], 0
je 0x80391ad
mov dword [ebp + 0x74], 0x3b6
push dword [ebp + 0x74]
lea ebx, [esi + 0x64]
call fcn.080e1065
pop ecx
push eax
mov ecx, ebx
call fcn.080da032
cmp dword [edi], 0
je 0x8038a2e
cmp dword [ebx], 0
je 0x8038a2e
mov edi, dword [ebp + 0x74]
push edi
call fcn.080238da
test eax, eax
pop ecx
je 0x803923e
mov edi, pe_nt_image_headers32
lea ecx, [esi + 0x30]
push edi
call fcn.08025007
xor ebx, ebx
mov eax, dword [esi + 0x30]
lea eax, [eax + ebx*4]
mov dword [ebp + 0x74], eax
push 0
lea eax, [ebp + 0x24]
push eax
push 1
lea eax, [ebp + 0x73]
push eax
push esi
mov byte [ebp + 0x73], bl
call fcn.080db795
mov ecx, dword [ebp + 0x74]
add esp, 0x14
inc ebx
cmp ebx, edi
mov dword [ecx], eax
jl 0x80391f1
lea edi, [esi + 0x1c]
mov ecx, edi
call fcn.08014e5d
xor ebx, ebx
mov dword [edi], ebx
lea edi, [esi + 0x64]
mov ecx, edi
mov dword [ebp + 0x40], ebx
call fcn.08037290
mov dword [edi], ebx
jmp 0x8039d40
cmp edi, 0xffffd8f1
jne 0x803924a
mov byte [esi + 0x52], 1
push edi
call fcn.080239fe
dec eax
pop ecx
je 0x803926c
dec eax
je 0x8039263
dec eax
jne 0x8039273
mov dword [esi + 0x10], fcn.080d8e0a
jmp 0x8039273
mov dword [esi + 0x10], fcn.080d8dfb
jmp 0x8039273
mov dword [esi + 0x10], fcn.080d8dc4
cmp edi, 0xd698
je 0x803928f
cmp edi, 0x186a0
je 0x8039293
mov dword [esi + 0xc], fcn.080db795
jmp 0x8039d40
mov byte [esi + 0x58], 1
mov dword [esi + 0xc], 0x80daa67
jmp 0x8039d40
add edi, 0x28
push edi
call fcn.08030cd4
push eax
call fcn.080e00c1
pop ecx
jmp 0x8039388
mov ebx, dword [ebx]
mov ebx, dword [ebx + 0x200]
cmp ebx, 6
jg 0x803933a
je 0x803932c
dec ebx
je 0x8039313
dec ebx
je 0x803930f
dec ebx
je 0x80392fa
dec ebx
je 0x80392e6
dec ebx
jne 0x803934e
cmp dword [edi + 0x2c], 1
jne 0x80392df
push 0x1c
jmp 0x8039383
push 0xd
jmp 0x8039383
cmp dword [edi + 0x2c], 1
jne 0x80392f3
push 0x1a
jmp 0x8039383
push 0xe
jmp 0x8039383
mov ecx, esi
call fcn.080d8da3
cmp dword [edi + 0x2c], 1
jne 0x803930b
push 5
jmp 0x8039383
push 6
jmp 0x8039383
push 0
jmp 0x8039383
mov ecx, esi
call fcn.080d8da3
cmp dword [edi + 0x2c], 1
jne 0x8039328
mov byte [esi + 0x52], 1
push 2
jmp 0x8039383
push 3
jmp 0x8039383
cmp dword [edi + 0x2c], 1
jne 0x8039336
push 0x18
jmp 0x8039383
push 0xb
jmp 0x8039383
cmp ebx, 7
je 0x8039377
cmp ebx, 0x15
je 0x8039369
cmp ebx, 0x19
je 0x8039365
cmp ebx, 0x1d
je 0x8039357
mov dword [esi + 0xc], 0x80d93a7
jmp 0x8039392
cmp dword [edi + 0x2c], 1
jne 0x8039361
push 0x13
jmp 0x8039383
push 9
jmp 0x8039383
push 1
jmp 0x8039383
cmp dword [edi + 0x2c], 1
jne 0x8039373
push 0x1d
jmp 0x8039383
push 8
jmp 0x8039383
cmp dword [edi + 0x2c], 1
jne 0x8039381
push 0x16
jmp 0x8039383
push 0xa
call fcn.080e01a6
pop ecx
push eax
lea ecx, [esi + 0x64]
call fcn.080da032
cmp dword [esi + 0x64], 0
je 0x80393a1
mov dword [esi + 0xc], fcn.080db795
jmp 0x80393af
cmp dword [esi + 0xc], 0x80d93a7
je 0x80393af
call fcn.0809d3cf
mov ecx, dword [ebp + 0x34]
test ecx, ecx
mov byte [ebp - 4], 0xb
je 0x8039d40
call fcn.08022a58
jmp 0x8039d40
cmp byte [ecx + 0x38], 0
je 0x80393dd
push dword [ebp + 0x5c]
mov ecx, esi
call fcn.080db714
jmp 0x8039d40
mov eax, dword [ecx + 0xc]
cmp eax, edi
mov byte [ebp + 0x77], 0
mov dword [ebp + 0xc], eax
je 0x8039412
cmp byte [ecx + 0x34], 0
je 0x803940c
push 4
lea eax, [ebp + 0x70]
push eax
mov ecx, edx
push 0x823a900
call fcn.08025e3b
cmp dword [ebp + 0x70], edi
sete byte [ebp + 0x73]
jmp 0x8039416
mov byte [ebp + 0x73], 0
jmp 0x8039416
mov byte [ebp + 0x73], 1
push dword [esi + 0x40]
call fcn.080238da
cmp byte [ebp + 0x73], 0
pop ecx
mov dword [ebp + 0x34], eax
je 0x80394c2
mov eax, dword [ebp + 0x5c]
mov eax, dword [eax + 0x2c]
cmp eax, 2
je 0x8039448
cmp dword [ebp + 0x34], edi
je 0x8039448
cmp eax, 1
jne 0x8039448
mov byte [ebp + 0x73], 0
mov byte [ebp + 0x77], al
cmp byte [ebp + 0x73], 0
je 0x80394c2
mov eax, dword [ebx]
cmp byte [eax + 0xa8], 0
je 0x80394c2
cmp byte [ebp + 0x3f], 0
je 0x80394c2
push dword [esi + 0x40]
call fcn.08090c1d
cmp eax, 1
pop ecx
jne 0x80394c2
lea eax, [ebp + 0x4c]
push eax
lea eax, [ebp + 0x54]
push eax
lea eax, [ebp + 0x58]
push eax
lea eax, [ebp + 0x50]
push eax
push dword [esi + 0x40]
mov ecx, esi
push ebx
call fcn.080d95a3
test al, al
je 0x80394c2
lea ecx, [esi + 0x30]
push pe_nt_image_headers32
call fcn.08025007
push dword [ebp + 0x54]
mov ecx, dword [esi + 0x30]
push dword [ebp + 0x58]
mov eax, dword [ebx]
push ecx
add eax, 0x64
push eax
call fcn.080813b2
add esp, 0x10
test al, al
jne 0x8039d40
push edi
lea ecx, [esi + 0x30]
call fcn.08025007
lea ecx, [ebp + 0x18]
call fcn.08001057
mov dword [ebp + 0x6c], edi
cmp byte [ebp + 0x73], 0
mov byte [ebp - 4], 0x20
je 0x80394f6
push 0x823aac0
lea ecx, [ebp + 0x18]
call fcn.0800202e
push edi
push 1
lea eax, [ebp + 0x18]
push eax
push ebx
lea ecx, [ebp + 0x6c]
call fcn.08097343
jmp 0x8039553
cmp byte [ebp + 0x77], 0
je 0x8039527
push 0x40000000
push dword [ebp + 0x34]
mov ecx, esi
call fcn.080dbcfa
cmp dword [ebp + 0x18], edi
mov byte [ebp - 4], 0xb
je 0x8039d40
push dword [ebp + 0x18]
call dword [0x8231224]
pop ecx
jmp 0x8039d40
mov ebx, dword [ebx]
push edi
lea eax, [ebp - 0x470]
push eax
push dword [ebp + 0xc]
push ebx
call fcn.080a96c5
lea eax, [ebp - 0x470]
push eax
push edi
call fcn.080b5842
add esp, 0x18
push eax
lea ecx, [ebp + 0x6c]
call fcn.08023dbd
push edi
lea ecx, [ebp + 0x6c]
call fcn.08022a7f
test eax, eax
jne 0x803956b
push 0x81ba788
call fcn.0809d433
pop ecx
lea ebx, [esi + 0x30]
push pe_nt_image_headers32
mov ecx, ebx
call fcn.08025007
push edi
lea ecx, [ebp + 0x6c]
call fcn.08022a7f
mov ebx, dword [ebx]
mov edx, dword [eax]
push ebx
mov ecx, eax
call dword [edx + 0xc]
mov ecx, dword [ebp + 0x6c]
cmp ecx, edi
mov byte [ebp - 4], 0x1f
je 0x803950b
call fcn.08022a58
jmp 0x803950b
mov ecx, dword [ebx]
mov eax, dword [ecx + 0x6c]
sub eax, edi
je 0x8039c39
dec eax
je 0x80398d3
dec eax
je 0x8039825
dec eax
je 0x8039729
dec eax
je 0x80395d7
dec eax
jne 0x8039d40
jmp 0x8038a2e
push edi
push 1
push 0x823aaf0
push ebx
lea ecx, [ebp + 0x30]
call fcn.08097343
push edi
lea ecx, [ebp + 0x30]
call fcn.08022a7f
mov edx, dword [eax]
mov ecx, eax
call dword [edx + 4]
cmp byte [eax + 0x20], 0
je 0x8039617
mov eax, dword [ebp + 0x5c]
cmp dword [eax + 0x2c], 3
je 0x8038da4
mov dword [esi + 0xc], 0x80d9ae0
jmp 0x8039d40
mov ecx, dword [ebx]
push edi
push edi
lea eax, [ebp + 0x6c]
push eax
call fcn.08094c05
lea ecx, [esi + 0x5c]
push eax
mov byte [ebp - 4], 0x19
call fcn.08022bb9
lea ecx, [ebp + 0x6c]
mov byte [ebp - 4], 0xb
call fcn.08022b67
cmp dword [esi + 0x5c], edi
je 0x80396de
push ecx
push ecx
mov ecx, esp
mov dword [ebp + 0x70], esp
call fcn.08001057
mov ecx, dword [ebx]
push edi
push dword [ebp + 0x48]
lea eax, [ebp + 0x70]
push eax
call fcn.08097f50
mov eax, dword [ebp + 0x70]
cmp eax, edi
mov byte [ebp - 4], 0x1a
je 0x80396d2
cmp byte [eax + 0x110], 0
je 0x803968e
mov eax, dword [ebp + 0x5c]
cmp dword [eax + 0x2c], 3
je 0x8038cf1
mov dword [esi + 0xc], 0x80d9ae0
jmp 0x8038cf8
push 0x44
call fcn.08001394
pop ecx
mov dword [ebp + 0x74], eax
cmp eax, edi
mov byte [ebp - 4], 0x1b
je 0x80396b0
push edi
push edi
lea ecx, [ebp + 0x70]
push ecx
mov ecx, eax
call fcn.080d6717
jmp 0x80396b2
xor eax, eax
mov dword [ebp + 0x74], eax
lea eax, [ebp + 0x74]
push eax
lea ecx, [esi + 0x70]
mov byte [ebp - 4], 0x1a
call fcn.080d93f8
mov ecx, dword [ebp + 0x74]
cmp ecx, edi
je 0x80396d2
mov eax, dword [ecx]
push 1
call dword [eax]
lea ecx, [ebp + 0x70]
mov byte [ebp - 4], 0xb
call fcn.08022b67
cmp dword [esi + 0x70], edi
je 0x8038a2e
mov eax, dword [ebp + 0x5c]
cmp dword [eax + 0x2c], 3
jne 0x80396f9
mov dword [esi + 0xc], fcn.080d9b1a
jmp 0x8039700
mov dword [esi + 0xc], 0x80d9d60
push edi
lea ecx, [ebp + 0x30]
call fcn.08022a7f
push eax
mov ecx, esi
call fcn.080d9817
mov ebx, dword [ebx]
cmp dword [ebx + 0x200], 1
jne 0x8039d40
mov byte [esi + 0x54], 1
jmp 0x8039d40
push edi
push edi
lea eax, [ebp + 0x24]
push eax
call fcn.08094c05
lea ecx, [esi + 0x5c]
push eax
mov byte [ebp - 4], 0x1c
call fcn.08022bb9
lea ecx, [ebp + 0x24]
mov byte [ebp - 4], 0xb
call fcn.08022b67
cmp dword [esi + 0x5c], edi
je 0x80397f8
push ecx
push ecx
mov ecx, esp
mov dword [ebp + 0x70], esp
call fcn.08001057
mov ebx, dword [ebx]
push 1
push edi
lea eax, [ebp + 0x70]
push eax
mov ecx, ebx
call fcn.08097f50
cmp dword [ebp + 0x70], edi
mov byte [ebp - 4], 0x1d
je 0x80397ee
push 0x44
call fcn.08001394
pop ecx
mov dword [ebp + 0x74], eax
cmp eax, edi
mov byte [ebp - 4], 0x1e
je 0x803979d
push edi
push edi
lea ecx, [ebp + 0x70]
push ecx
mov ecx, eax
call fcn.080d6717
jmp 0x803979f
xor eax, eax
mov dword [ebp + 0x74], eax
lea eax, [ebp + 0x74]
lea ebx, [esi + 0x70]
push eax
mov ecx, ebx
mov byte [ebp - 4], 0x1d
call fcn.080d93f8
mov ecx, esi
call fcn.080d8da3
mov eax, dword [ebp + 0x5c]
cmp dword [eax + 0x2c], 3
jne 0x80397cd
mov dword [esi + 0xc], fcn.080db16b
jmp 0x80397d4
mov dword [esi + 0xc], 0x80db375
mov ecx, dword [ebp + 0x74]
cmp ecx, edi
je 0x80397e1
mov eax, dword [ecx]
push 1
call dword [eax]
cmp dword [ebp + 0x70], edi
je 0x80397ee
cmp dword [ebx], edi
jne 0x8038cf8
call fcn.0809d3cf
jmp 0x8038cf8
push dword [esi + 0x44]
call fcn.080e2e67
mov dword [esi + 0x6c], eax
mov eax, dword [ebp + 0x5c]
cmp dword [eax + 0x2c], 3
pop ecx
jne 0x8039819
mov dword [esi + 0xc], fcn.080d8f19
jmp 0x8039d40
mov dword [esi + 0xc], 0x80d8f8a
jmp 0x8039d40
push 0
push dword [ebp + 0x48]
lea eax, [ebp + 8]
push eax
call fcn.08094c05
lea edi, [esi + 0x5c]
push eax
mov ecx, edi
mov byte [ebp - 4], 0x18
call fcn.08022bb9
lea ecx, [ebp + 8]
mov byte [ebp - 4], 0xb
call fcn.08022b67
cmp dword [edi], 0
jne 0x8039868
mov eax, dword [ebx]
cmp byte [eax + 0xa8], 0
je 0x8039868
push dword [ebp + 0x5c]
mov ecx, esi
call fcn.080da0f9
xor eax, eax
cmp dword [edi], eax
jne 0x803988c
cmp dword [esi + 0x1c], eax
je 0x8038a2e
mov eax, dword [ebp + 0x5c]
cmp dword [eax + 0x2c], 3
jne 0x80398c7
mov dword [esi + 0xc], fcn.080db3ae
jmp 0x8039d40
cmp dword [esi + 0x1c], eax
jne 0x8039877
mov ebx, dword [ebx]
cmp dword [ebx + 0x200], 1
je 0x8039877
cmp dword [ebx + 0x200], 2
je 0x8039877
cmp dword [ebx + 0x200], 3
je 0x8039877
mov eax, dword [ebp + 0x5c]
cmp dword [eax + 0x2c], 3
je 0x8038e91
mov dword [esi + 0xc], 0x80d9a03
jmp 0x8039d40
mov dword [esi + 0xc], 0x80db4b7
jmp 0x8039d40
lea eax, [ebp + 0x44]
push eax
lea eax, [ebp + 0x4c]
push eax
lea eax, [ebp + 0x54]
push eax
lea eax, [ebp + 0x58]
push eax
lea eax, [ebp + 0x50]
push eax
push dword [ebp + 0x5c]
call fcn.080265b5
test eax, eax
je 0x8038a2e
mov eax, dword [ebx]
push 1
lea ecx, [ebp + 0x40]
push ecx
push dword [ebp + 0x4c]
add eax, 0x64
push dword [ebp + 0x54]
push dword [ebp + 0x58]
push eax
call fcn.080155e2
add esp, 0x18
push eax
lea ecx, [esi + 0x1c]
call fcn.0802bf22
cmp dword [esi + 0x1c], edi
je 0x8038a2e
push dword [ebp + 0x54]
push dword [ebp + 0x58]
call fcn.080238b9
test al, al
pop ecx
pop ecx
je 0x803995b
mov ecx, esi
mov byte [esi + 0x53], 1
call fcn.080d8da3
mov eax, dword [ebp + 0x5c]
cmp dword [eax + 0x2c], 3
je 0x8038e18
mov dword [esi + 0xc], 0x80da6bf
jmp 0x8039d40
cmp dword [ebp + 0x58], 3
jne 0x80399e9
cmp dword [ebp + 0x54], edi
jne 0x80399e9
mov ecx, dword [ebx]
mov byte [ebp + 0x73], 0
call fcn.0809884f
test eax, eax
je 0x8039984
mov byte [ebp + 0x73], 1
mov dword [esi + 0x44], 0xfffffffb
push dword [esi + 0x1c]
call fcn.080d8b99
cmp byte [esi + 0x51], 0
pop ecx
mov byte [esi + 0x50], al
jne 0x80399bd
cmp byte [ebp + 0x73], 0
jne 0x80399bd
mov eax, dword [ebp + 0x5c]
cmp dword [eax + 0x2c], 3
jne 0x80399b1
mov dword [esi + 0xc], fcn.080da6fc
jmp 0x8039d40
mov dword [esi + 0xc], 0x80da745
jmp 0x8039d40
test al, al
je 0x8039942
push edi
push dword [ebp + 0x58]
push 1
push 1
mov ecx, esi
call fcn.080dae04
mov eax, dword [ebp + 0x5c]
cmp dword [eax + 0x2c], 3
jne 0x8039b7a
mov dword [esi + 0xc], fcn.080daff0
jmp 0x8039d40
push ebx
mov ecx, esi
call fcn.080dbddd
test eax, eax
jne 0x8039d27
mov ecx, dword [ebp + 0x58]
cmp ecx, 3
mov eax, dword [ebp + 0x54]
jne 0x8039a18
cmp eax, 2
je 0x8039a38
cmp eax, 4
je 0x8039a38
cmp eax, 3
je 0x8039a38
cmp eax, 5
je 0x8039a38
cmp ecx, 1
jne 0x8039b6d
cmp eax, ecx
je 0x8039a38
cmp eax, 2
je 0x8039a38
cmp eax, 0x19
je 0x8039a38
cmp eax, 3
jne 0x8039b6d
mov ecx, dword [ebx]
push 0
push 0
lea eax, [ebp + 0x10]
push eax
call fcn.08094c05
lea edi, [esi + 0x5c]
push eax
mov ecx, edi
mov byte [ebp - 4], 0x14
call fcn.08022bb9
lea ecx, [ebp + 0x10]
mov byte [ebp - 4], 0xb
call fcn.08022b67
push ecx
push ecx
mov ecx, esp
mov dword [ebp + 0x74], esp
call fcn.08001057
mov ebx, dword [ebx]
push 1
push 0
lea eax, [ebp + 0x70]
push eax
mov ecx, ebx
call fcn.08097f50
push dword [ebp + 0x48]
mov ecx, esi
push dword [ebp + 0x54]
mov byte [ebp - 4], 0x15
push dword [ebp + 0x58]
call fcn.080d8c24
cmp dword [edi], 0
je 0x80397ee
xor edi, edi
cmp dword [ebp + 0x70], edi
je 0x80397ee
push 0x44
call fcn.08001394
pop ecx
mov dword [ebp + 0x74], eax
cmp eax, edi
mov byte [ebp - 4], 0x16
je 0x8039ac9
push edi
push edi
lea ecx, [ebp + 0x70]
push ecx
mov ecx, eax
call fcn.080d6717
jmp 0x8039acb
xor eax, eax
mov dword [ebp + 0x74], eax
lea eax, [ebp + 0x74]
push eax
lea ecx, [esi + 0x70]
mov byte [ebp - 4], 0x15
call fcn.080d93f8
cmp dword [ebp + 0x58], 3
mov edx, dword [ebp + 0x54]
jne 0x8039b0d
cmp edx, 2
je 0x8039afb
cmp edx, 4
je 0x8039afb
cmp edx, 3
je 0x8039afb
cmp edx, 5
jne 0x8039b0d
cmp dword [ebp + 0x50], 2
je 0x8039b07
cmp dword [ebp + 0x50], 4
jne 0x8039b0d
mov word [esi + 0x78], 1
mov ecx, esi
call fcn.080d8da3
mov eax, dword [ebp + 0x5c]
cmp dword [eax + 0x2c], 3
jne 0x8039b26
mov dword [esi + 0xc], fcn.080db16b
jmp 0x8039b2d
mov dword [esi + 0xc], 0x80db375
cmp edx, 2
je 0x8039b50
jle 0x8039b57
cmp edx, 4
jle 0x8039b47
cmp edx, 6
jg 0x8039b57
mov dword [esi + 0x10], fcn.080d8e0a
jmp 0x8039b57
mov dword [esi + 0x10], fcn.080d8dfb
jmp 0x8039b57
mov dword [esi + 0x10], fcn.080d8dc4
mov ecx, dword [ebp + 0x74]
cmp ecx, edi
je 0x8038cf8
mov eax, dword [ecx]
push 1
call dword [eax]
jmp 0x8038cf8
cmp byte [esi + 0x51], 0
je 0x8039b86
push edi
push ecx
jmp 0x80399c5
mov dword [esi + 0xc], 0x80db07f
jmp 0x8039d40
cmp ecx, 1
jne 0x8038a2e
push dword [ebp + 0x54]
call fcn.0802b781
test al, al
pop ecx
je 0x8038a2e
mov eax, dword [ebp + 0x54]
mov ebx, dword [ebx]
cmp dword [ebx + 0x200], eax
je 0x8039bb7
cmp eax, edi
jne 0x8039bb7
mov eax, dword [ebx + 0x200]
push 1
push eax
call fcn.080413ec
mov ebx, eax
push ebx
call fcn.080238da
add esp, 0xc
cmp eax, edi
mov dword [ebp + 0x70], eax
je 0x8038a2e
push 0x38
call fcn.08001394
pop ecx
mov dword [ebp + 0x74], eax
cmp eax, edi
mov byte [ebp - 4], 0x17
je 0x8039bf5
push ebx
push dword [ebp + 0x70]
mov ecx, eax
call fcn.080d64b0
jmp 0x8039bf7
xor eax, eax
mov dword [ebp + 0x70], eax
lea eax, [ebp + 0x70]
push eax
lea ecx, [esi + 0x74]
mov byte [ebp - 4], 0xb
call fcn.080d9415
mov eax, dword [ebp + 0x5c]
cmp dword [eax + 0x2c], 3
jne 0x8039c1c
mov dword [esi + 0xc], fcn.080da781
jmp 0x8039c23
mov dword [esi + 0xc], 0x80da807
mov ecx, dword [ebp + 0x70]
cmp ecx, edi
je 0x8039d40
mov eax, dword [ecx]
push 1
call dword [eax]
jmp 0x8039d40
lea ecx, [esi + 0x1c]
call fcn.08014e5d
mov ecx, dword [ebx]
mov dword [esi + 0x1c], edi
mov dword [ebp + 0x40], edi
cmp dword [ecx + 0x70], 1
jne 0x8039cb3
cmp byte [ecx + 0xa8], 0
je 0x8039cb3
lea eax, [ebp + 0x44]
push eax
lea eax, [ebp + 0x4c]
push eax
lea eax, [ebp + 0x54]
push eax
lea eax, [ebp + 0x58]
push eax
lea eax, [ebp + 0x50]
push eax
push dword [ebp + 0x5c]
call fcn.080265b5
test eax, eax
je 0x8039cb3
push dword [ebp + 0x54]
push dword [ebp + 0x58]
call fcn.080238b9
test al, al
pop ecx
pop ecx
je 0x8039cb3
mov eax, dword [ebx]
push 1
lea ecx, [ebp + 0x40]
push ecx
push dword [ebp + 0x4c]
add eax, 0x64
push dword [ebp + 0x54]
mov byte [esi + 0x53], 1
push dword [ebp + 0x58]
push eax
call fcn.080155e2
add esp, 0x18
push eax
lea ecx, [esi + 0x1c]
call fcn.0802bf22
push 0x18
call fcn.08001394
pop ecx
mov dword [ebp + 0x70], eax
cmp eax, edi
mov byte [ebp - 4], 0x12
je 0x8039ccf
mov ecx, eax
call fcn.0803f89b
jmp 0x8039cd1
xor eax, eax
mov dword [ebp + 0x70], eax
lea eax, [ebp + 0x70]
push eax
lea ecx, [esi + 0x60]
mov byte [ebp - 4], 0xb
call fcn.080db6e2
lea ecx, [ebp + 0x70]
call fcn.080db6fc
push 0x10
call fcn.08001394
pop ecx
mov dword [ebp + 0x70], eax
cmp eax, edi
mov byte [ebp - 4], 0x13
je 0x8039d0a
push dword [ebx]
mov ecx, eax
call fcn.080ea97f
jmp 0x8039d0c
xor eax, eax
mov dword [ebp + 0x70], eax
lea eax, [ebp + 0x70]
push eax
lea ecx, [esi + 0x7c]
mov byte [ebp - 4], 0xb
call fcn.080b1d2b
lea ecx, [ebp + 0x70]
call fcn.0802ca66
mov eax, dword [ebp + 0x5c]
cmp dword [eax + 0x2c], 4
jne 0x8039d39
mov dword [esi + 0xc], 0x80db132
jmp 0x8039d40
mov dword [esi + 0xc], fcn.080dac6f
cmp dword [esi + 0x30], 0
jne 0x8039d57
push dword [esi + 0x40]
call fcn.080238da
test eax, eax
pop ecx
jne 0x8039d57
xor al, al
jmp 0x8039d59
mov al, 1
push dword [ebp + 0x40]
mov ecx, esi
mov byte [esi + 0x59], al
call fcn.0803727f
mov ecx, dword [ebp + 0x78]
mov dword [ecx], eax
lea ecx, [ebp + 0x38]
mov byte [ebp - 4], 0xa
call fcn.08022aa2
mov ecx, dword [ebp + 0x30]
test ecx, ecx
mov byte [ebp - 4], 9
je 0x8039d87
call fcn.08022a58
mov eax, esi
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
add ebp, 0x64
leave
ret 0x10