Function at 0x401000
Capabilities:
Allocate or change rwx memory
Parse pe header
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
sub esp, 0x9c
mov eax, dword [ebp + 8]
mov dword [ebp - 0x28], eax
mov dword [ebp - 0x2c], 0
mov dword [ebp - 0x30], 0
mov dword [ebp - 0x34], 0
mov dword [ebp - 0x38], 0
mov dword [ebp - 0x3c], 0
mov dword [ebp - 0x40], 0
mov dword [ebp - 0x44], 0
mov dword [ebp - 0x48], 0
mov dword [ebp - 0x4c], 0
mov dword [ebp - 0x50], 0
mov dword [ebp - 0x54], 0
mov dword [ebp - 0x58], 0
mov dword [ebp - 0x5c], 0
mov dword [ebp - 0x60], 0
mov dword [ebp - 0x64], 0
mov dword [ebp - 0x68], 0
mov dword [ebp - 0x6c], 0
mov dword [ebp - 0x74], 0
mov dword [ebp - 0x7c], 0
mov dword [ebp - 0x80], 0
mov dword [ebp - 0x84], 0
mov dword [ebp - 0x88], 0
mov dword [ebp - 0x90], 0
mov eax, dword [ebp - 0x28]
mov dword [ebp - 0x2c], eax
movzx eax, word [eax]
mov dword [ebp - 0x20], eax
mov dword [ebp - 0x98], 0xf8c86e5c
lea esi, [ebp - 0x94]
mov edi, 0xa0
jmp 0x4010f0
mov dword [ebp - 0x98], 0x8035228e
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [ebp - 0x98]
cmp eax, 0x7f18cafc
jg 0x401120
cmp eax, 0x7bd7b8f7
jg 0x401130
cmp eax, 0x82807d0f
jg 0x40115a
cmp eax, 0x8035228e
jne 0x4010f0
mov dword [ebp - 0x98], 0x38c5dacf
jmp 0x4010f0
cmp eax, 0x7f18cafd
jne 0x4010f0
jmp 0x4010df
cmp eax, 0x7bd7b8f8
jne 0x4010f0
mov eax, dword [0x41bf30]
mov ecx, dword [ebp - 0x30]
add eax, dword [ecx + 0x28]
mov dword [0x41bf44], eax
mov dword [ebp - 0x24], 0
mov dword [ebp - 0x98], 0x87d2b9c8
jmp 0x4010f0
cmp eax, 0x873290eb
jg 0x40117e
cmp eax, 0x82807d10
jne 0x4010f0
mov dword [ebp - 0x24], 0xffffffff
mov dword [ebp - 0x98], 0xfbf414f2
jmp 0x4010f0
cmp eax, 0x87d2b9c7
jg 0x4011ae
cmp eax, 0x873290ec
jne 0x4010f0
mov eax, dword [ebp - 0x30]
cmp dword [eax + 0x78], 0
mov eax, 0x4ed1e1eb
jne 0x4011a3
mov eax, 0x4f2359eb
mov dword [ebp - 0x98], eax
jmp 0x4010f0
cmp eax, 0x89e737e7
jg 0x4011c5
cmp eax, 0x87d2b9c8
jne 0x4010f0
jmp 0x40296f
cmp eax, 0x900f9457
jg 0x4011f0
cmp eax, 0x89e737e8
jne 0x4010f0
mov dword [ebp - 0x94], 4
mov dword [ebp - 0x98], 0x9bbb0a02
jmp 0x4010f0
cmp eax, 0x902bf508
jg 0x401211
cmp eax, 0x900f9458
jne 0x4010f0
mov dword [ebp - 0x98], 0x873290ec
jmp 0x4010f0
cmp eax, 0x99911724
jg 0x401232
cmp eax, 0x902bf509
jne 0x4010f0
mov dword [ebp - 0x98], 0x582ba3c4
jmp 0x4010f0
cmp eax, 0x9bbb0a01
jg 0x40126e
cmp eax, 0x99911725
jne 0x4010f0
mov eax, dword [0x41bf30]
mov ecx, dword [ebp - 0x48]
add eax, dword [ecx + 0x10]
mov dword [ebp - 0x3c], eax
mov eax, dword [0x41bf30]
mov ecx, dword [ebp - 0x48]
add eax, dword [ecx]
mov dword [ebp - 0x40], eax
mov dword [ebp - 0x98], 0x59870ca5
jmp 0x4010f0
cmp eax, 0x9cdddcfb
jg 0x4012ce
cmp eax, 0x9bbb0a02
jne 0x4010f0
mov eax, dword [0x41bf30]
mov ecx, dword [ebp - 0x34]
imul edx, dword [ebp - 0x8c], 0x28
add eax, dword [ecx + edx + 0xc]
mov ecx, dword [ecx + edx + 0x10]
mov edx, dword [ebp - 0x94]
mov dword [esp + 0xc], esi
mov dword [esp + 8], edx
mov dword [esp + 4], ecx
mov dword [esp], eax
call dword [sym.imp.KERNEL32.dll_VirtualProtect]
sub esp, 0x10
test eax, eax
mov eax, 0xa81307f4
jne 0x4012c3
mov eax, 0xb57c771e
mov dword [ebp - 0x98], eax
jmp 0x4010f0
cmp eax, 0x9e729d8a
jg 0x401304
cmp eax, 0x9cdddcfc
jne 0x4010f0
xor eax, eax
sub eax, dword [ebp - 0x8c]
mov ecx, 1
sub ecx, eax
mov dword [ebp - 0x8c], ecx
mov dword [ebp - 0x98], 0xc5b61358
jmp 0x4010f0
cmp eax, 0xa445f453
jg 0x401325
cmp eax, 0x9e729d8b
jne 0x4010f0
mov dword [ebp - 0x98], 0xd4e43b31
jmp 0x4010f0
cmp eax, 0xa6121deb
jg 0x401352
cmp eax, 0xa445f454
jne 0x4010f0
cmp dword [ebp - 0x10], 0
mov eax, 0x7785ce70
jle 0x401347
mov eax, 0x27b9ca6
mov dword [ebp - 0x98], eax
jmp 0x4010f0
cmp eax, 0xa81307f3
jg 0x4013c0
cmp eax, 0xa6121dec
jne 0x4010f0
mov eax, dword [0x41bf30]
mov ecx, dword [ebp - 0x54]
add eax, dword [ecx]
mov ecx, dword [ebp - 0x58]
movzx ecx, word [ecx]
and ecx, 0xfff
movzx eax, word [ecx + eax]
mov ecx, dword [ebp - 0x80]
and ecx, ecx
shr ecx, 0x10
neg ecx
sub eax, ecx
mov dword [ebp - 0x88], eax
mov eax, dword [0x41bf30]
mov ecx, dword [ebp - 0x54]
add eax, dword [ecx]
mov ecx, dword [ebp - 0x58]
movzx ecx, word [ecx]
and ecx, 0xfff
mov dx, word [ebp - 0x88]
mov word [ecx + eax], dx
mov dword [ebp - 0x98], 0x7430cea2
jmp 0x4010f0
cmp eax, 0xaaaf99d3
jg 0x4013e1
cmp eax, 0xa81307f4
jne 0x4010f0
mov dword [ebp - 0x98], 0xd4e43b31
jmp 0x4010f0
cmp eax, 0xaf865272
jg 0x401421
cmp eax, 0xaaaf99d4
jne 0x4010f0
mov eax, dword [0x41bf30]
mov ecx, dword [ebp - 0x2c]
mov ecx, dword [ecx + 0x3c]
lea eax, [eax + ecx + 0xf8]
mov dword [ebp - 0x34], eax
mov dword [ebp - 0x8c], 0
mov dword [ebp - 0x98], 0x1acab79a
jmp 0x4010f0
cmp eax, 0xb285b890
jg 0x40144f
cmp eax, 0xaf865273
jne 0x4010f0
mov al, byte [ebp - 0x15]
test al, al
mov eax, 0xf4066250
jne 0x401444
mov eax, 0x873290ec
mov dword [ebp - 0x98], eax
jmp 0x4010f0
cmp eax, 0xb57c771d
jg 0x401470
cmp eax, 0xb285b891
jne 0x4010f0
mov dword [ebp - 0x98], 0x8035228e
jmp 0x4010f0
cmp eax, 0xb8b109cb
jg 0x401491
cmp eax, 0xb57c771e
jne 0x4010f0
mov dword [ebp - 0x98], 0x460d5c5e
jmp 0x4010f0
cmp eax, 0xb96c578e
jg 0x4014c1
cmp eax, 0xb8b109cc
jne 0x4010f0
mov eax, dword [ebp - 0x54]
cmp dword [eax + 4], 0
mov eax, 0x5152f84
jne 0x4014b6
mov eax, 0x900f9458
mov dword [ebp - 0x98], eax
jmp 0x4010f0
cmp eax, 0x77c100e9
jg 0x401926
cmp eax, 0x77a4e285
jg 0x40194a
cmp eax, 0x7785ce6f
jg 0x401964
cmp eax, 0x76bd6650
jg 0x40198a
cmp eax, 0x749bb979
jg 0x4019a4
cmp eax, 0x7430cea1
jg 0x4019be
cmp eax, 0x6b51082c
jg 0x401a27
cmp eax, 0x6b38e4b2
jg 0x401a4e
cmp eax, 0x6a8d5fcf
jg 0x401a9d
cmp eax, 0x69dc959a
jg 0x401b00
cmp eax, 0x665d372b
jg 0x401b1a
cmp eax, 0x65f8b60f
jg 0x401b48
cmp eax, 0x64c20f9f
jg 0x401b70
cmp eax, 0x63d02af9
jg 0x401ba8
cmp eax, 0x632f5aec
jg 0x401bd7
cmp eax, 0x5eb4a150
jg 0x401bf1
cmp eax, 0x5aaae5c6
jg 0x401c47
cmp eax, 0x59870ca4
jg 0x401cac
cmp eax, 0x59479177
jg 0x401cc6
cmp eax, 0x5853eefe
jg 0x401cee
cmp eax, 0x582ba3c3
jg 0x401d08
cmp eax, 0x54af1b70
jg 0x401d39
cmp eax, 0x53d2d25f
jg 0x401d61
cmp eax, 0x50334952
jg 0x401daa
cmp eax, 0x4f2359ea
jg 0x401de8
cmp eax, 0x4ed1e1ea
jg 0x401e02
cmp eax, 0x4e946143
jg 0x401e74
cmp eax, 0x4c2f196d
jg 0x401e8e
cmp eax, 0x4a850a93
jg 0x401ef5
cmp eax, 0x49cc060e
jg 0x401f1a
cmp eax, 0x490fff38
jg 0x401f42
cmp eax, 0x460d5c5d
jg 0x401f66
cmp eax, 0x44dcde78
jg 0x401f87
cmp eax, 0x42de4095
jg 0x401fbf
cmp eax, 0x3eef0434
jg 0x401fd9
cmp eax, 0x3ccad799
jg 0x401ffd
cmp eax, 0x3c792592
jg 0x402013
cmp eax, 0x39387c99
jg 0x40202d
cmp eax, 0x38c5dace
jg 0x402047
cmp eax, 0x389f5f3b
jg 0x40206b
cmp eax, 0x3714f7ad
jg 0x402092
cmp eax, 0x35e16e4f
jg 0x4020ba
cmp eax, 0x316042bb
jg 0x4020e8
cmp eax, 0x2fa36913
jg 0x402111
cmp eax, 0x2e83ad10
jg 0x402139
cmp eax, 0x2dae90db
jg 0x402149
cmp eax, 0x2da64964
jg 0x402163
cmp eax, 0x2ae2b05d
jg 0x40217d
cmp eax, 0x2a2674a1
jg 0x4021a5
cmp eax, 0x23803b9f
jg 0x4021ed
cmp eax, 0x232a276e
jg 0x402207
cmp eax, 0x1f41bbb5
jg 0x40222f
cmp eax, 0x1aedaead
jg 0x402256
cmp eax, 0x1acab799
jg 0x40227e
cmp eax, 0x19e0df6d
jg 0x402298
cmp eax, 0x17563943
jg 0x4022d1
cmp eax, 0x1742b361
jg 0x4022eb
cmp eax, 0x13825ea6
jg 0x402305
cmp eax, 0x133a65db
jg 0x40231f
cmp eax, 0xe9df8ff
jg 0x40235b
cmp eax, 0x709a008
jg 0x402394
cmp eax, 0x594938b
jg 0x4023ae
cmp eax, 0x5152f83
jg 0x4023c8
cmp eax, 0x4df597c
jg 0x4023fc
cmp eax, 0x27b9ca5
jg 0x402424
cmp eax, 0xfc81ec7c
jg 0x40244c
cmp eax, 0xfbf414f1
jg 0x402474
cmp eax, 0xfb0b9295
jg 0x402495
cmp eax, 0xf8c86e5b
jg 0x4024bc
cmp eax, 0xf6571262
jg 0x4024e6
cmp eax, 0xf4321937
jg 0x40250a
cmp eax, 0xf406624f
jg 0x40253f
cmp eax, 0xeee895fe
jg 0x402566
cmp eax, 0xec4f84a3
jg 0x402576
cmp eax, 0xe9718387
jg 0x402590
cmp eax, 0xe856461c
jg 0x4025b4
cmp eax, 0xe4047e12
jg 0x4025e1
cmp eax, 0xe2a08fa0
jg 0x402609
cmp eax, 0xe1344885
jg 0x402629
cmp eax, 0xe0805b66
jg 0x402643
cmp eax, 0xdfe330ec
jg 0x40265d
cmp eax, 0xde8799f9
jg 0x402681
cmp eax, 0xde2ab712
jg 0x4026a8
cmp eax, 0xdca8755c
jg 0x4026d0
cmp eax, 0xd4e43b30
jg 0x402700
cmp eax, 0xcef27ee7
jg 0x40271a
cmp eax, 0xccd1b460
jg 0x402742
cmp eax, 0xca702f36
jg 0x40275c
cmp eax, 0xc86e14b6
jg 0x402784
cmp eax, 0xc643b1ff
jg 0x4027b5
cmp eax, 0xc5b61357
jg 0x4027ff
cmp eax, 0xc59931ea
jg 0x40281f
cmp eax, 0xc58e719f
jg 0x402839
cmp eax, 0xc581a4a7
jg 0x402857
cmp eax, 0xc2e554d4
jg 0x40289e
cmp eax, 0xc0259ed4
jg 0x4028b8
cmp eax, 0xbf155937
jg 0x4028d9
cmp eax, 0xbbf90076
jg 0x402917
cmp eax, 0xb96c578f
je 0x402931
cmp eax, 0xb96f2863
jne 0x40294e
mov dword [ebp - 0x94], 0x20
mov dword [ebp - 0x98], 0xdfe330ed
jmp 0x4010f0
cmp eax, 0x77c100ea
jne 0x4010f0
mov dword [ebp - 0x94], 2
mov dword [ebp - 0x98], 0x9bbb0a02
jmp 0x4010f0
cmp eax, 0x77a4e286
jne 0x4010f0
mov dword [ebp - 0x98], 0xde8799fa
jmp 0x4010f0
cmp eax, 0x7785ce70
jne 0x4010f0
cmp dword [ebp - 0x10], 0
mov eax, 0x77c100ea
je 0x40197f
mov eax, 0x2e83ad11
mov dword [ebp - 0x98], eax
jmp 0x4010f0
cmp eax, 0x76bd6651
jne 0x4010f0
mov dword [ebp - 0x98], 0xe1344886
jmp 0x4010f0
cmp eax, 0x749bb97a
jne 0x4010f0
mov dword [ebp - 0x98], 0x594938c
jmp 0x4010f0
cmp eax, 0x7430cea2
jne 0x4010f0
mov eax, dword [0x41bf30]
mov ecx, dword [ebp - 0x54]
add eax, dword [ecx]
mov ecx, dword [ebp - 0x58]
movzx ecx, word [ecx]
mov edx, ecx
xor edx, 0xf000
and edx, ecx
movzx eax, word [edx + eax]
mov ecx, dword [ebp - 0x80]
and ecx, ecx
shr ecx, 0x10
add ecx, eax
mov dword [ebp - 0x88], ecx
mov eax, dword [0x41bf30]
mov ecx, dword [ebp - 0x54]
add eax, dword [ecx]
mov ecx, dword [ebp - 0x58]
movzx ecx, word [ecx]
and ecx, 0xfff
mov dx, word [ebp - 0x88]
mov word [ecx + eax], dx
mov dword [ebp - 0x98], 0x7f18cafd
jmp 0x4010f0
cmp eax, 0x6b51082d
jne 0x4010f0
mov al, byte [ebp - 0x16]
test al, al
mov eax, 0x50334953
jne 0x401a43
mov eax, 0xccd1b461
mov dword [ebp - 0x98], eax
jmp 0x4010f0
cmp eax, 0x6b38e4b3
jne 0x4010f0
mov eax, dword [ebp - 0x30]
mov eax, dword [eax + 0x50]
mov dword [esp + 4], eax
mov dword [esp + 0xc], 0x40
mov dword [esp + 8], 0x1000
mov dword [esp], 0
call dword [sym.imp.KERNEL32.dll_VirtualAlloc]
sub esp, 0x10
test eax, eax
mov dword [0x41bf30], eax
setne byte [ebp - 0x18]
mov dword [ebp - 0x98], 0x1f41bbb6
jmp 0x4010f0
cmp eax, 0x6a8d5fd0
jne 0x4010f0
mov eax, dword [0x41bf30]
mov ecx, dword [ebp - 0x54]
add eax, dword [ecx]
mov ecx, dword [ebp - 0x58]
movzx ecx, word [ecx]
and ecx, 0xfff
xor edx, edx
sub edx, dword [ebp - 0x80]
sub edx, dword [ecx + eax]
neg edx
mov dword [ebp - 0x88], edx
mov eax, dword [0x41bf30]
mov ecx, dword [ebp - 0x54]
add eax, dword [ecx]
mov ecx, dword [ebp - 0x58]
movzx ecx, word [ecx]
mov edx, ecx
xor edx, 0xf000
and edx, ecx
mov ecx, dword [ebp - 0x88]
mov dword [edx + eax], ecx
mov dword [ebp - 0x98], 0x8035228e
jmp 0x4010f0
cmp eax, 0x69dc959b
jne 0x4010f0
mov dword [ebp - 0x98], 0x4a850a94
jmp 0x4010f0
cmp eax, 0x665d372c
jne 0x4010f0
mov eax, dword [0x41bf30]
mov ecx, dword [ebp - 0x40]
mov ecx, dword [ecx]
lea edx, [eax + ecx]
mov dword [ebp - 0x44], edx
mov edx, dword [ebp - 0x7c]
lea eax, [eax + ecx + 2]
mov dword [esp + 4], eax
mov dword [esp], edx
jmp 0x402376
cmp eax, 0x65f8b610
jne 0x4010f0
mov eax, dword [ebp - 0x10]
cmp eax, 4
mov eax, 0x89e737e8
je 0x401b65
mov eax, 0x2e83ad11
mov dword [ebp - 0x98], eax
jmp 0x4010f0
cmp eax, 0x64c20fa0
jne 0x4010f0
mov eax, dword [ebp - 0x34]
imul ecx, dword [ebp - 0x8c], 0x28
mov eax, dword [eax + ecx + 0x24]
not eax
or eax, 0xffffffdf
cmp eax, 0xffffffff
mov eax, 0x133a65dc
jne 0x401b9d
mov eax, 0x35e16e50
mov dword [ebp - 0x98], eax
jmp 0x4010f0
cmp eax, 0x63d02afa
jne 0x4010f0
mov eax, dword [ebp - 0x8c]
mov ecx, dword [ebp - 0x30]
movzx ecx, word [ecx + 6]
cmp eax, ecx
setb al
mov byte [ebp - 0x17], al
mov dword [ebp - 0x98], 0x389f5f3c
jmp 0x4010f0
cmp eax, 0x632f5aed
jne 0x4010f0
mov dword [ebp - 0x98], 0x63d02afa
jmp 0x4010f0
cmp eax, 0x5eb4a151
jne 0x4010f0
mov eax, dword [0x41bf30]
mov ecx, dword [ebp - 0x30]
mov edx, 0x4acbab6c
sub edx, dword [ecx + 0x34]
lea eax, [edx + eax - 0x4acbab6c]
mov dword [ebp - 0x80], eax
mov eax, dword [0x41bf30]
mov ecx, dword [ebp - 0x30]
mov dword [ecx + 0x34], eax
mov eax, dword [ebp - 0x30]
lea ecx, [eax + 0xa0]
mov dword [ebp - 0x38], ecx
cmp dword [eax + 0xa4], 0
setne byte [ebp - 0x15]
mov dword [ebp - 0x98], 0xaf865273
jmp 0x4010f0
cmp eax, 0x5aaae5c7
jne 0x4010f0
mov eax, dword [ebp - 0x28]
mov ecx, dword [ebp - 0x2c]
mov ecx, dword [ecx + 0x3c]
lea edx, [eax + ecx + 0xf8]
mov dword [ebp - 0x34], edx
mov edx, dword [0x41bf30]
mov ebx, dword [ebp - 0x28]
mov eax, dword [eax + ecx + 0x104]
mov dword [esp + 8], eax
mov dword [esp + 4], ebx
mov dword [esp], edx
call fcn.0040af50
mov eax, dword [0x41bf30]
mov ecx, dword [ebp - 0x2c]
add eax, dword [ecx + 0x3c]
mov dword [ebp - 0x30], eax
mov dword [ebp - 0x8c], 0
mov dword [ebp - 0x98], 0xc59931eb
jmp 0x4010f0
cmp eax, 0x59870ca5
jne 0x4010f0
mov dword [ebp - 0x98], 0x4df597d
jmp 0x4010f0
cmp eax, 0x59479178
jne 0x4010f0
mov eax, dword [ebp - 0x10]
cmp eax, 1
mov eax, 0x490fff39
je 0x401ce3
mov eax, 0x2e83ad11
mov dword [ebp - 0x98], eax
jmp 0x4010f0
cmp eax, 0x5853eeff
jne 0x4010f0
mov dword [ebp - 0x98], 0x99911725
jmp 0x4010f0
cmp eax, 0x582ba3c4
jne 0x4010f0
mov eax, dword [ebp - 0x8c]
mov ecx, dword [ebp - 0x30]
movzx ecx, word [ecx + 6]
cmp eax, ecx
mov eax, 0x64c20fa0
jb 0x401d2e
mov eax, 0x7bd7b8f8
mov dword [ebp - 0x98], eax
jmp 0x4010f0
cmp eax, 0x54af1b71
jne 0x4010f0
mov eax, dword [ebp - 0x14]
cmp eax, 3
mov eax, 0x6a8d5fd0
je 0x401d56
mov eax, 0x3c792593
mov dword [ebp - 0x98], eax
jmp 0x4010f0
cmp eax, 0x53d2d260
jne 0x4010f0
mov eax, dword [ebp - 0x30]
mov eax, dword [eax + 0x50]
mov dword [esp + 4], eax
mov dword [esp + 0xc], 0x40
mov dword [esp + 8], 0x1000
mov dword [esp], 0
call dword [sym.imp.KERNEL32.dll_VirtualAlloc]
sub esp, 0x10
mov dword [0x41bf30], eax
mov dword [ebp - 0x98], 0x6b38e4b3
jmp 0x4010f0
cmp eax, 0x50334953
jne 0x4010f0
mov eax, dword [0x41bf30]
mov ecx, dword [ebp - 0x48]
add eax, dword [ecx + 0xc]
mov dword [esp], eax
call dword [sym.imp.KERNEL32.dll_GetModuleHandleA]
sub esp, 4
test eax, eax
mov dword [ebp - 0x7c], eax
mov eax, 0x5853eeff
jne 0x401ddd
mov eax, 0xc643b200
mov dword [ebp - 0x98], eax
jmp 0x4010f0
cmp eax, 0x4f2359eb
jne 0x4010f0
mov dword [ebp - 0x98], 0xaaaf99d4
jmp 0x4010f0
cmp eax, 0x4ed1e1eb
jne 0x4010f0
mov eax, dword [0x41bf30]
mov ecx, dword [ebp - 0x30]
mov ecx, dword [ecx + 0x78]
lea edx, [eax + ecx]
mov dword [ebp - 0x4c], edx
mov edx, dword [0x41bf30]
add edx, dword [eax + ecx + 0x20]
mov dword [ebp - 0x64], edx
mov eax, dword [ebp - 0x4c]
mov eax, dword [eax + 0x18]
mov dword [ebp - 0x74], eax
mov eax, dword [0x41bf30]
mov ecx, dword [ebp - 0x4c]
add eax, dword [ecx + 0x24]
mov dword [ebp - 0x6c], eax
mov eax, dword [0x41bf30]
mov ecx, dword [ebp - 0x4c]
add eax, dword [ecx + 0x1c]
mov dword [ebp - 0x68], eax
mov ecx, dword [0x41bf30]
mov edx, dword [ebp - 0x6c]
movzx edx, word [edx]
add ecx, dword [eax + edx*4]
mov dword [0x41bf48], ecx
mov dword [ebp - 0x98], 0x4f2359eb
jmp 0x4010f0
cmp eax, 0x4e946144
jne 0x4010f0
mov dword [ebp - 0x98], 0x87d2b9c8
jmp 0x4010f0
cmp eax, 0x4c2f196e
jne 0x4010f0
mov eax, dword [0x41bf30]
mov ecx, dword [ebp - 0x54]
add eax, dword [ecx]
mov ecx, dword [ebp - 0x58]
movzx ecx, word [ecx]
and ecx, 0xfff
movzx eax, word [ecx + eax]
movzx ecx, word [ebp - 0x80]
neg ecx
sub eax, ecx
mov dword [ebp - 0x88], eax
mov eax, dword [0x41bf30]
mov ecx, dword [ebp - 0x54]
add eax, dword [ecx]
mov ecx, dword [ebp - 0x58]
movzx ecx, word [ecx]
mov edx, ecx
xor edx, 0xf000
and edx, ecx
mov cx, word [ebp - 0x88]
mov word [edx + eax], cx
mov dword [ebp - 0x98], 0x8035228e
jmp 0x4010f0
cmp eax, 0x4a850a94
jne 0x4010f0
mov eax, dword [ebp - 0x48]
cmp dword [eax + 0xc], 0
setne byte [ebp - 0x16]
mov dword [ebp - 0x98], 0x6b51082d
jmp 0x4010f0
cmp eax, 0x49cc060f
jne 0x4010f0
mov eax, dword [ebp - 0x10]
cmp eax, 5
mov eax, 0x2fa36914
jl 0x401f37
mov eax, 0xca702f37
mov dword [ebp - 0x98], eax
jmp 0x4010f0
cmp eax, 0x490fff39
jne 0x4010f0
mov dword [ebp - 0x94], 0x10
mov dword [ebp - 0x98], 0x9bbb0a02
jmp 0x4010f0
cmp eax, 0x460d5c5e
jne 0x4010f0
mov dword [ebp - 0x24], 0xffffffff
mov dword [ebp - 0x98], 0xc2e554d5
jmp 0x4010f0
cmp eax, 0x44dcde79
jne 0x4010f0
mov eax, dword [ebp - 0x28]
mov ecx, dword [ebp - 0x2c]
mov ecx, dword [ecx + 0x3c]
lea edx, [eax + ecx]
mov dword [ebp - 0x30], edx
cmp dword [eax + ecx], 0x4550
mov eax, 0x13825ea7
jne 0x401fb4
mov eax, 0x39387c9a
mov dword [ebp - 0x98], eax
jmp 0x4010f0
cmp eax, 0x42de4096
jne 0x4010f0
mov dword [ebp - 0x98], 0x3714f7ae
jmp 0x4010f0
cmp eax, 0x3eef0435
jne 0x4010f0
add dword [ebp - 0x58], 2
dec dword [ebp - 0x84]
mov dword [ebp - 0x98], 0x38c5dacf
jmp 0x4010f0
cmp eax, 0x3ccad79a
jne 0x4010f0
mov eax, dword [ebp - 0x54]
add eax, dword [eax + 4]
jmp 0x402554
cmp eax, 0x3c792593
jne 0x4010f0
mov dword [ebp - 0x98], 0xb285b891
jmp 0x4010f0
cmp eax, 0x39387c9a
jne 0x4010f0
mov dword [ebp - 0x98], 0xde8799fa
jmp 0x4010f0
cmp eax, 0x38c5dacf
jne 0x4010f0
add dword [ebp - 0x58], 2
dec dword [ebp - 0x84]
mov dword [ebp - 0x98], 0x2dae90dc
jmp 0x4010f0
cmp eax, 0x389f5f3c
jne 0x4010f0
mov al, byte [ebp - 0x17]
test al, al
mov eax, 0x2a2674a2
jne 0x402087
mov eax, 0xbf155938
mov dword [ebp - 0x98], eax
jmp 0x4010f0
cmp eax, 0x3714f7ae
jne 0x4010f0
mov eax, dword [ebp - 0x14]
cmp eax, 2
mov eax, 0xe4047e13
jl 0x4020af
mov eax, 0xcef27ee8
mov dword [ebp - 0x98], eax
jmp 0x4010f0
cmp eax, 0x35e16e50
jne 0x4010f0
mov eax, dword [ebp - 0x34]
imul ecx, dword [ebp - 0x8c], 0x28
mov eax, dword [eax + ecx + 0x24]
shr eax, 0x1d
mov dword [ebp - 0x10], eax
mov dword [ebp - 0x98], 0xde2ab713
jmp 0x4010f0
cmp eax, 0x316042bc
jne 0x4010f0
cmp dword [ebp - 0x84], 0
mov eax, 0x2da64965
jne 0x402106
mov eax, 0x3ccad79a
mov dword [ebp - 0x98], eax
jmp 0x4010f0
cmp eax, 0x2fa36914
jne 0x4010f0
mov eax, dword [ebp - 0x10]
cmp eax, 4
mov eax, 0x232a276f
jl 0x40212e
mov eax, 0x65f8b610
mov dword [ebp - 0x98], eax
jmp 0x4010f0
cmp eax, 0x2e83ad11
jne 0x4010f0
jmp 0x402581
cmp eax, 0x2dae90dc
jne 0x4010f0
mov dword [ebp - 0x98], 0x316042bc
jmp 0x4010f0
cmp eax, 0x2da64965
jne 0x4010f0
mov dword [ebp - 0x98], 0xdca8755d
jmp 0x4010f0
cmp eax, 0x2ae2b05e
jne 0x4010f0
mov eax, dword [ebp - 0x10]
cmp eax, 6
mov eax, 0x89e737e8
je 0x40219a
mov eax, 0x2e83ad11
mov dword [ebp - 0x98], eax
jmp 0x4010f0
cmp eax, 0x2a2674a2
jne 0x4010f0
mov eax, dword [0x41bf30]
mov ecx, dword [ebp - 0x34]
imul edx, dword [ebp - 0x8c], 0x28
add eax, dword [ecx + edx + 0xc]
mov ebx, dword [ebp - 0x28]
add ebx, dword [ecx + edx + 0x14]
mov ecx, dword [ecx + edx + 0x10]
mov dword [esp + 8], ecx
mov dword [esp + 4], ebx
mov dword [esp], eax
call fcn.0040af50
mov dword [ebp - 0x98], 0xe2a08fa1
jmp 0x4010f0
cmp eax, 0x23803ba0
jne 0x4010f0
mov dword [ebp - 0x98], 0x4a850a94
jmp 0x4010f0
cmp eax, 0x232a276f
jne 0x4010f0
mov eax, dword [ebp - 0x10]
cmp eax, 3
mov eax, 0x709a009
je 0x402224
mov eax, 0x2e83ad11
mov dword [ebp - 0x98], eax
jmp 0x4010f0
cmp eax, 0x1f41bbb6
jne 0x4010f0
mov al, byte [ebp - 0x18]
test al, al
mov eax, 0x5aaae5c7
jne 0x40224b
mov eax, 0xeee895ff
mov dword [ebp - 0x98], eax
jmp 0x4010f0
cmp eax, 0x1aedaeae
jne 0x4010f0
mov eax, dword [ebp - 0x14]
cmp eax, 2
mov eax, 0x4c2f196e
je 0x402273
mov eax, 0x3c792593
mov dword [ebp - 0x98], eax
jmp 0x4010f0
cmp eax, 0x1acab79a
jne 0x4010f0
mov dword [ebp - 0x98], 0x582ba3c4
jmp 0x4010f0
cmp eax, 0x19e0df6e
jne 0x4010f0
mov eax, dword [0x41bf30]
mov ecx, dword [ebp - 0x2c]
mov ecx, dword [ecx + 0x3c]
lea eax, [eax + ecx + 0xf8]
mov dword [ebp - 0x34], eax
mov dword [ebp - 0x8c], 0
mov dword [ebp - 0x98], 0xaaaf99d4
jmp 0x4010f0
cmp eax, 0x17563944
jne 0x4010f0
mov dword [ebp - 0x98], 0x7430cea2
jmp 0x4010f0
cmp eax, 0x1742b362
jne 0x4010f0
mov dword [ebp - 0x98], 0x6b38e4b3
jmp 0x4010f0
cmp eax, 0x13825ea7
jne 0x4010f0
mov dword [ebp - 0x98], 0xfbf414f2
jmp 0x4010f0
cmp eax, 0x133a65dc
jne 0x4010f0
mov eax, dword [ebp - 0x34]
imul ecx, dword [ebp - 0x8c], 0x28
mov edx, dword [eax + ecx + 0x24]
mov ebx, edx
and ebx, 0x60000000
xor edx, 0x60000000
or edx, ebx
mov dword [eax + ecx + 0x24], edx
mov dword [ebp - 0x98], 0x35e16e50
jmp 0x4010f0
cmp eax, 0xe9df900
jne 0x4010f0
mov eax, dword [ebp - 0x7c]
mov ecx, dword [ebp - 0x40]
movzx ecx, word [ecx]
mov dword [esp + 4], ecx
mov dword [esp], eax
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
sub esp, 8
mov dword [ebp - 0x88], eax
mov dword [ebp - 0x98], 0xe856461d
jmp 0x4010f0
cmp eax, 0x709a009
jne 0x4010f0
mov dword [ebp - 0x98], 0xdfe330ed
jmp 0x4010f0
cmp eax, 0x594938c
jne 0x4010f0
mov dword [ebp - 0x98], 0xc5b61358
jmp 0x4010f0
cmp eax, 0x5152f84
jne 0x4010f0
mov eax, dword [ebp - 0x54]
mov eax, dword [eax + 4]
add eax, 0xfffffff8
shr eax, 1
mov dword [ebp - 0x84], eax
mov eax, dword [ebp - 0x54]
add eax, 8
mov dword [ebp - 0x58], eax
mov dword [ebp - 0x98], 0x316042bc
jmp 0x4010f0
cmp eax, 0x4df597d
jne 0x4010f0
mov eax, dword [ebp - 0x40]
cmp dword [eax], 0
mov eax, 0xc86e14b7
jne 0x402419
mov eax, 0xc58e71a0
mov dword [ebp - 0x98], eax
jmp 0x4010f0
cmp eax, 0x27b9ca6
jne 0x4010f0
mov eax, dword [ebp - 0x10]
cmp eax, 2
mov eax, 0x59479178
jl 0x402441
mov eax, 0xb96c578f
mov dword [ebp - 0x98], eax
jmp 0x4010f0
cmp eax, 0xfc81ec7d
jne 0x4010f0
mov eax, dword [ebp - 0x10]
cmp eax, 5
mov eax, 0x76bd6651
je 0x402469
mov eax, 0x2e83ad11
mov dword [ebp - 0x98], eax
jmp 0x4010f0
cmp eax, 0xfbf414f2
jne 0x4010f0
mov dword [ebp - 0x24], 0xffffffff
mov dword [ebp - 0x98], 0x4e946144
jmp 0x4010f0
cmp eax, 0xfb0b9296
jne 0x4010f0
mov al, byte [ebp - 0x19]
test al, al
mov eax, 0x13825ea7
jne 0x4024b1
mov eax, 0x1742b362
mov dword [ebp - 0x98], eax
jmp 0x4010f0
cmp eax, 0xf8c86e5c
jne 0x4010f0
mov eax, dword [ebp - 0x20]
cmp eax, 0x5a4d
mov eax, 0xbaaaae11
jne 0x4024db
mov eax, 0x44dcde79
mov dword [ebp - 0x98], eax
jmp 0x4010f0
cmp eax, 0xf6571263
jne 0x4010f0
mov dword [ebp - 0x88], 0
mov dword [ebp - 0x98], 0xdca8755d
jmp 0x4010f0
cmp eax, 0xf4321938
jne 0x4010f0
mov eax, dword [0x41bf30]
mov ecx, dword [ebp - 0x48]
add eax, dword [ecx + 0x10]
mov dword [ebp - 0x3c], eax
mov eax, dword [0x41bf30]
mov ecx, dword [ebp - 0x48]
add eax, dword [ecx]
mov dword [ebp - 0x40], eax
mov dword [ebp - 0x98], 0x99911725
jmp 0x4010f0
cmp eax, 0xf4066250
jne 0x4010f0
mov eax, dword [0x41bf30]
mov ecx, dword [ebp - 0x38]
add eax, dword [ecx]
mov dword [ebp - 0x54], eax
mov dword [ebp - 0x98], 0xb8b109cc
jmp 0x4010f0
cmp eax, 0xeee895ff
jne 0x4010f0
jmp 0x402959
cmp eax, 0xec4f84a4
jne 0x4010f0
mov dword [ebp - 0x98], 0xe9718388
jmp 0x4010f0
cmp eax, 0xe9718388
jne 0x4010f0
mov dword [ebp - 0x94], 0x40
mov dword [ebp - 0x98], 0x9bbb0a02
jmp 0x4010f0
cmp eax, 0xe856461d
jne 0x4010f0
mov eax, dword [ebp - 0x3c]
mov ecx, dword [ebp - 0x88]
mov dword [eax], ecx
add dword [ebp - 0x3c], 4
add dword [ebp - 0x40], 4
mov dword [ebp - 0x98], 0x4df597d
jmp 0x4010f0
cmp eax, 0xe4047e13
jne 0x4010f0
mov eax, dword [ebp - 0x14]
cmp eax, 1
mov eax, 0x17563944
je 0x4025fe
mov eax, 0x3c792593
mov dword [ebp - 0x98], eax
jmp 0x4010f0
cmp eax, 0xe2a08fa1
jne 0x4010f0
inc dword [ebp - 0x8c]
mov dword [ebp - 0x98], 0xc59931eb
jmp 0x4010f0
cmp eax, 0xe1344886
jne 0x4010f0
mov dword [ebp - 0x98], 0xec4f84a4
jmp 0x4010f0
cmp eax, 0xe0805b67
jne 0x4010f0
mov dword [ebp - 0x98], 0x9bbb0a02
jmp 0x4010f0
cmp eax, 0xdfe330ed
jne 0x4010f0
mov dword [ebp - 0x94], 0x20
mov dword [ebp - 0x98], 0xe0805b67
jmp 0x4010f0
cmp eax, 0xde8799fa
jne 0x4010f0
mov eax, dword [ebp - 0x30]
cmp word [eax + 0x18], 0x10b
setne byte [ebp - 0x19]
mov dword [ebp - 0x98], 0xfb0b9296
jmp 0x4010f0
cmp eax, 0xde2ab713
jne 0x4010f0
mov eax, dword [ebp - 0x10]
cmp eax, 3
mov eax, 0xa445f454
jl 0x4026c5
mov eax, 0x49cc060f
mov dword [ebp - 0x98], eax
jmp 0x4010f0
cmp eax, 0xdca8755d
jne 0x4010f0
mov dword [ebp - 0x88], 0
mov eax, dword [ebp - 0x58]
movzx eax, word [eax]
shr eax, 0xc
mov dword [ebp - 0x14], eax
mov dword [ebp - 0x98], 0x42de4096
jmp 0x4010f0
cmp eax, 0xd4e43b31
jne 0x4010f0
mov dword [ebp - 0x98], 0x749bb97a
jmp 0x4010f0
cmp eax, 0xcef27ee8
jne 0x4010f0
mov eax, dword [ebp - 0x14]
cmp eax, 3
mov eax, 0x1aedaeae
jl 0x402737
mov eax, 0x54af1b71
mov dword [ebp - 0x98], eax
jmp 0x4010f0
cmp eax, 0xccd1b461
jne 0x4010f0
mov dword [ebp - 0x98], 0x5eb4a151
jmp 0x4010f0
cmp eax, 0xca702f37
jne 0x4010f0
mov eax, dword [ebp - 0x10]
cmp eax, 6
mov eax, 0xfc81ec7d
jl 0x402779
mov eax, 0x2ae2b05e
mov dword [ebp - 0x98], eax
jmp 0x4010f0
cmp eax, 0xc86e14b7
jne 0x4010f0
mov eax, dword [ebp - 0x40]
mov eax, dword [eax]
not eax
or eax, 0x7fffffff
cmp eax, 0xffffffff
mov eax, 0xe9df900
jne 0x4027aa
mov eax, 0x665d372c
mov dword [ebp - 0x98], eax
jmp 0x4010f0
cmp eax, 0xc643b200
jne 0x4010f0
mov eax, dword [0x41bf30]
mov ecx, dword [ebp - 0x48]
add eax, dword [ecx + 0xc]
mov dword [esp], eax
call dword [sym.imp.KERNEL32.dll_LoadLibraryA]
sub esp, 4
mov ecx, dword [ebp - 0x8c]
lea edx, [ecx + 1]
mov dword [ebp - 0x8c], edx
mov dword [ecx*4 + 0x41bee0], eax
mov dword [ebp - 0x7c], eax
mov dword [ebp - 0x98], 0x5853eeff
jmp 0x4010f0
cmp eax, 0xc5b61358
jne 0x4010f0
inc dword [ebp - 0x8c]
mov dword [ebp - 0x98], 0x902bf509
jmp 0x4010f0
cmp eax, 0xc59931eb
jne 0x4010f0
mov dword [ebp - 0x98], 0x63d02afa
jmp 0x4010f0
cmp eax, 0xc58e71a0
jne 0x4010f0
add dword [ebp - 0x48], 0x14
mov dword [ebp - 0x98], 0x23803ba0
jmp 0x4010f0
cmp eax, 0xc581a4a8
jne 0x4010f0
mov eax, dword [0x41bf30]
mov ecx, dword [ebp - 0x30]
mov edx, 0x506fa9a6
sub edx, dword [ecx + 0x34]
lea eax, [edx + eax - 0x506fa9a6]
mov dword [ebp - 0x80], eax
mov eax, dword [0x41bf30]
mov ecx, dword [ebp - 0x30]
mov dword [ecx + 0x34], eax
mov eax, dword [ebp - 0x30]
add eax, edi
mov dword [ebp - 0x38], eax
mov dword [ebp - 0x98], 0x5eb4a151
jmp 0x4010f0
cmp eax, 0xc2e554d5
jne 0x4010f0
mov dword [ebp - 0x98], 0x87d2b9c8
jmp 0x4010f0
cmp eax, 0xc0259ed5
jne 0x4010f0
mov dword [ebp - 0x24], 0xffffffff
mov dword [ebp - 0x98], 0x460d5c5e
jmp 0x4010f0
cmp eax, 0xbf155938
jne 0x4010f0
mov eax, dword [ebp - 0x30]
mov ecx, eax
sub ecx, 0xffffff80
mov dword [ebp - 0x38], ecx
mov ecx, dword [0x41bf30]
add ecx, dword [eax + 0x80]
mov dword [ebp - 0x48], ecx
mov dword [ebp - 0x8c], 0
mov dword [ebp - 0x98], 0x23803ba0
jmp 0x4010f0
cmp eax, 0xbbf90077
jne 0x4010f0
mov dword [ebp - 0x98], 0xe1344886
jmp 0x4010f0
mov eax, dword [ebp - 0x10]
cmp eax, 2
mov eax, 0x77c100ea
je 0x402943
mov eax, 0x2e83ad11
mov dword [ebp - 0x98], eax
jmp 0x4010f0
cmp eax, 0xbaaaae11
jne 0x4010f0
mov dword [ebp - 0x24], 0xffffffff
mov dword [ebp - 0x98], 0x87d2b9c8
jmp 0x4010f0
mov eax, dword [ebp - 0x24]
add esp, 0x9c
pop esi
pop edi
pop ebx
pop ebp
ret