Function at 0x408467
Capabilities:
Packed with generic packer

Disassembly:
sub esp, 0xccc
cmp dword [0x41780c], 0x3e9
push ebx
push ebp
push esi
push edi
push 1
mov dword [esp + 0x24], 0x1d
mov dword [esp + 0x28], 0x1e
mov dword [esp + 0x2c], 0x1f
mov dword [esp + 0x30], 0x20
mov dword [esp + 0x34], 0x21
mov dword [esp + 0x38], 0x22
mov dword [esp + 0x3c], 0x23
mov dword [esp + 0x40], 0x24
mov dword [esp + 0x44], 0x25
mov dword [esp + 0x48], 0x28
mov dword [esp + 0x4c], 0x2c
mov dword [esp + 0x50], 0x38
mov dword [esp + 0x54], 0x39
mov dword [esp + 0x58], 0x3a
pop ebx
jne 0x408393
cmp dword [0x4178c0], 0
je 0x4083a9
and dword [0x4178c0], 0
cmp dword [0x4178c0], 0
je 0x4083a9
mov ax, word [0x417cd4]
mov word [esp + 0x10], ax
jmp 0x4083ad
mov dword [esp + 0x10], ebx
push 0xe
lea esi, [esp + 0x24]
lea edi, [esp + 0x160]
pop ebp
push 0x40
push edi
push dword [esi]
push dword [0x417bd4]
call fcn.0040b454
add esp, 0x10
add edi, 0x40
add esi, 4
dec ebp
jne 0x4083bb
mov eax, dword [0x417810]
mov ecx, dword [0x417bc0]
add ecx, eax
and dword [0x417844], 0
add ecx, dword [0x417c3c]
add ecx, dword [0x417c48]
add ecx, dword [0x417cdc]
add ecx, dword [0x41786c]
add ecx, dword [0x4178c4]
add ecx, dword [0x417cc8]
add ecx, dword [0x4178b8]
add ecx, dword [0x417bfc]
mov dword [0x417c38], ecx
jne 0x408429
mov dword [0x417c38], ebx
cmp dword [0x417bd0], 0
mov ebx, dword [0x412170]
mov ebp, dword [0x4122f8]
jne 0x4086c6
xor edi, edi
push edi
push 0x3ea
call fcn.004035be
push edi
push 0x3ec
call fcn.004035be
mov esi, 0x3ed
push 1
push esi
call fcn.004035be
push 1
push 0x3ef
call fcn.004035be
lea eax, [esp + 0x4fc]
push 0x100
push eax
push 0x2d
push dword [0x417bd4]
call fcn.0040b454
push dword [0x417bf0]
lea eax, [esp + 0x510]
push eax
lea eax, [esp + 0x914]
push eax
call dword [0x412268]
add esp, 0x3c
lea eax, [esp + 0x8dc]
push eax
push esi
push dword [0x4177c8]
call dword [0x4122d8]
push edi
push 1
push dword [0x4177c8]
call ebp
mov esi, dword [0x41229c]
push eax
call esi
push edi
push 5
push dword [0x4177c8]
call ebp
push eax
call esi
mov esi, 0x417c60
lea eax, [edi + 0x6b]
movzx eax, ax
push eax
push dword [0x417bd4]
call dword [0x412280]
mov dword [esi], eax
add esi, 4
inc edi
cmp esi, 0x417cb4
jl 0x4084e8
xor esi, esi
cmp dword [0x4178d0], esi
je 0x408529
push 5
push 0xef6
push dword [0x4177c8]
call ebp
push eax
call dword [0x41227c]
push esi
call fcn.0040984e
mov bp, word [esp + 0x14]
pop ecx
xor ecx, ecx
cmp dword [0x417be4], esi
mov dword [0x417bd0], 1
mov dword [esp + 0x14], ecx
jle 0x4086cb
cmp dword [0x417874], 0
jne 0x4086cb
mov edi, 0x3e8
cmp dword [0x41780c], edi
je 0x408580
mov eax, dword [0x417898]
mov eax, dword [eax + ecx*4]
cmp dword [eax + 0x204], 0
je 0x4086b3
mov eax, dword [0x417898]
mov esi, ecx
shl esi, 2
add eax, esi
mov edx, dword [eax]
cmp word [edx + 0x208], bp
jb 0x4086b3
push 0x5c
push edx
call fcn.0040c57a
pop ecx
test eax, eax
pop ecx
je 0x4085ba
mov eax, dword [0x417898]
push 0
push dword [esi + eax]
call 0x40b02b
pop ecx
pop ecx
lea eax, [esp + 0x4dc]
push 0x414674
push eax
call ebx
push 0
call fcn.0040bbc3
mov byte [esp + 0x4e0], al
pop ecx
lea eax, [esp + 0x45c]
push eax
push dword [0x4178a4]
call ebx
mov eax, dword [0x417898]
mov eax, dword [esi + eax]
cmp byte [eax + 0x104], 0
lea ecx, [eax + 0x104]
je 0x408602
push ecx
jmp 0x408603
push eax
push dword [0x4178a4]
call dword [0x41210c]
push dword [0x4178a4]
call fcn.0040984e
cmp dword [0x41780c], edi
pop ecx
mov eax, 0x414668
je 0x40862d
mov eax, 0x414660
push eax
lea eax, [esp + 0x5c]
push eax
call ebx
mov eax, dword [0x417898]
mov ebp, dword [esi + eax]
push ebp
call dword [0x412178]
mov edi, eax
add edi, ebp
cmp edi, ebp
jbe 0x408690
mov bl, byte [edi]
cmp bl, 0x20
je 0x408657
test bl, bl
jne 0x408671
and byte [edi], 0
mov eax, dword [0x417898]
push 0
push dword [esi + eax]
call fcn.0040b1ca
pop ecx
test eax, eax
pop ecx
je 0x40867e
mov byte [edi], bl
mov eax, dword [0x417898]
dec edi
cmp edi, dword [esi + eax]
ja 0x40864c
jmp 0x408690
cmp bl, 0x20
jne 0x408690
inc edi
lea eax, [esp + 0x58]
push edi
push eax
call dword [0x412170]
lea eax, [esp + 0x58]
push eax
mov eax, dword [0x417898]
push dword [esi + eax]
call fcn.0040c4c9
mov ebx, dword [0x412170]
mov bp, word [esp + 0x18]
pop ecx
pop ecx
mov ecx, dword [esp + 0x14]
inc ecx
cmp ecx, dword [0x417be4]
mov dword [esp + 0x14], ecx
jl 0x408551
jmp 0x4086cb
mov bp, word [esp + 0x10]
xor esi, esi
cmp dword [0x4178c0], esi
je 0x40872d
cmp dword [0x4177fc], esi
jle 0x40872d
cmp dword [0x417874], 0
jne 0x40872d
mov eax, dword [0x4177e4]
mov eax, dword [eax + esi*4]
cmp word [eax + 0x208], bp
jb 0x408724
add eax, 0x104
push 0
push eax
call fcn.0040b1ca
pop ecx
test eax, eax
pop ecx
jne 0x408724
mov eax, dword [0x4177e4]
push 1
mov eax, dword [eax + esi*4]
lea ecx, [eax + 0x104]
push ecx
push eax
call fcn.0040a50d
add esp, 0xc
inc esi
cmp esi, dword [0x4177fc]
jl 0x4086dd
xor esi, esi
cmp dword [0x417bc0], esi
jle 0x4087d2
cmp dword [0x417874], 0
jne 0x4087d2
cmp dword [0x41780c], 0x3e8
je 0x408765
mov eax, dword [0x417cd8]
mov eax, dword [eax + esi*4]
cmp dword [eax + 0x104], 0
je 0x4087bf
mov eax, dword [0x417cd8]
mov eax, dword [eax + esi*4]
cmp word [eax + 0x108], bp
jb 0x4087bf
lea eax, [esp + 0x49c]
push eax
push dword [0x4178a4]
call ebx
mov eax, dword [0x417cd8]
push dword [eax + esi*4]
push dword [0x4178a4]
call dword [0x41210c]
push dword [0x4178a4]
call fcn.0040984e
mov eax, dword [0x417cd8]
push dword [eax + esi*4]
call fcn.0040b520
push 0xdac
call fcn.00409954
add esp, 0xc
inc dword [0x417844]
inc esi
cmp esi, dword [0x417bc0]
jl 0x40873b
cmp dword [0x4178ec], 0
je 0x40882b
cmp dword [0x41780c], 0x3e8
je 0x4087f0
cmp dword [0x417818], 0
je 0x40882b
lea eax, [esp + 0x3dc]
push eax
push dword [0x4178a4]
call ebx
push dword [0x4178ec]
push dword [0x4178a4]
call dword [0x41210c]
push dword [0x4178a4]
call fcn.0040984e
pop ecx
call fcn.0040a8f2
test eax, eax
jne 0x409843
xor edi, edi
cmp dword [0x4178c4], edi
jle 0x4088da
cmp dword [0x417874], 0
jne 0x4088da
cmp dword [0x41780c], 0x3e8
je 0x408863
mov eax, dword [0x4177e8]
mov eax, dword [eax + edi*4]
cmp dword [eax + 0x104], 0
je 0x4088c7
mov eax, dword [0x4177e8]
mov esi, edi
shl esi, 2
mov eax, dword [esi + eax]
cmp word [eax + 0x108], bp
jb 0x4088c7
lea eax, [esp + 0x25c]
push eax
push dword [0x4178a4]
call ebx
mov eax, dword [0x4177e8]
push dword [esi + eax]
push dword [0x4178a4]
call dword [0x41210c]
push dword [0x4178a4]
call fcn.0040984e
mov eax, dword [0x4177e8]
push 0
push dword [esi + eax]
call 0x40af72
mov eax, dword [0x4177e8]
push dword [esi + eax]
call 0x40acb8
add esp, 0x10
inc dword [0x417844]
inc edi
cmp edi, dword [0x4178c4]
jl 0x408839
xor edi, edi
cmp dword [0x41786c], edi
jle 0x4089ca
cmp dword [0x417874], 0
jne 0x4089ca
cmp dword [0x41780c], 0x3e8
je 0x408916
mov eax, dword [0x4178f8]
mov eax, dword [eax + edi*4]
cmp dword [eax + 0x70c], 0
je 0x4089b7
mov eax, dword [0x4178f8]
mov esi, edi
shl esi, 2
mov eax, dword [esi + eax]
cmp word [eax + 0x710], bp
jb 0x4089b7
add eax, 8
push 0
push eax
call fcn.0040b1ca
pop ecx
test eax, eax
pop ecx
jne 0x4089b7
lea eax, [esp + 0x29c]
push eax
push dword [0x4178a4]
call ebx
mov eax, dword [0x4178f8]
mov eax, dword [esi + eax]
add eax, 8
push eax
push dword [0x4178a4]
call dword [0x41210c]
push dword [0x4178a4]
call fcn.0040984e
mov eax, dword [0x4178f8]
cmp dword [0x4178c0], 0
pop ecx
mov eax, dword [esi + eax]
lea ecx, [eax + 0x50c]
jne 0x408992
lea ecx, [eax + 0x30c]
lea edx, [eax + 8]
push edx
mov dl, byte [ecx]
neg dl
sbb edx, edx
and edx, ecx
lea ecx, [eax + 0x20c]
push edx
add eax, 0x10c
push ecx
push eax
call dword [0x412130]
mov bp, word [esp + 0x10]
inc dword [0x417844]
inc edi
cmp edi, dword [0x41786c]
jl 0x4088e8
xor esi, esi
cmp dword [0x417bf8], esi
jle 0x408a24
cmp dword [0x4178c0], 0
je 0x408a1b
mov eax, dword [0x4177dc]
mov eax, dword [eax + esi*4]
cmp word [eax + 0x208], bp
jb 0x408a1b
add eax, 0x104
push 0
push eax
call fcn.0040b1ca
pop ecx
test eax, eax
pop ecx
jne 0x408a1b
mov eax, dword [0x4177dc]
push 1
mov eax, dword [eax + esi*4]
lea ecx, [eax + 0x104]
push ecx
push eax
call fcn.0040a50d
add esp, 0xc
inc esi
cmp esi, dword [0x417bf8]
jl 0x4089d4
mov eax, dword [0x417bfc]
lea esi, [eax - 1]
test esi, esi
jl 0x408b48
cmp dword [0x41780c], 0x3e8
jne 0x408a64
mov eax, dword [0x417830]
mov eax, dword [eax + esi*4]
cmp dword [eax + 0x268], 0
jne 0x408a79
cmp dword [0x4178c0], 0
je 0x408a64
lea ecx, [eax + 0x10c]
test ecx, ecx
jne 0x408a79
mov eax, dword [0x417830]
mov eax, dword [eax + esi*4]
cmp dword [eax + 0x264], 0
je 0x408b41
cmp word [eax + 0x270], bp
jb 0x408b41
cmp word [eax + 0x276], bp
jb 0x408aa5
push dword [eax + 0x278]
add eax, 8
push 1
push eax
call fcn.0040a308
add esp, 0xc
jmp 0x408aa7
xor eax, eax
cmp eax, 1
jne 0x408add
cmp dword [0x4178c0], 0
je 0x408acf
mov eax, dword [0x417830]
mov eax, dword [eax + esi*4]
cmp word [eax + 0x272], bp
jne 0x408acf
cmp byte [eax + 0x10c], 0
jne 0x408b41
mov eax, dword [0x417830]
mov eax, dword [eax + esi*4]
and byte [eax + 8], 0
jmp 0x408b41
mov eax, dword [0x417830]
mov eax, dword [eax + esi*4]
mov cx, word [eax + 0x272]
cmp cx, word [eax + 0x270]
jne 0x408afe
cmp byte [eax + 0x10c], 0
je 0x408b07
cmp dword [0x4178c0], 0
jne 0x408b41
cmp word [eax + 0x26c], bp
jb 0x408b26
add eax, 8
push 0
push eax
lea eax, [esp + 0x3a4]
push eax
call fcn.0040a70e
add esp, 0xc
mov eax, dword [0x417830]
mov eax, dword [eax + esi*4]
cmp word [eax + 0x26e], bp
jb 0x408b41
add eax, 8
push eax
call fcn.0040b575
pop ecx
dec esi
jns 0x408a34
mov eax, dword [0x4178b8]
lea edi, [eax - 1]
test edi, edi
jl 0x408c5e
mov eax, dword [0x417c58]
mov esi, edi
shl esi, 2
mov eax, dword [esi + eax]
cmp word [eax + 0x268], bp
jb 0x408c57
mov ecx, dword [eax + 0x25c]
test ecx, ecx
jne 0x408b84
cmp dword [0x417838], ecx
je 0x408beb
cmp word [eax + 0x26e], bp
jb 0x408b9f
push dword [eax + 0x270]
push ecx
push eax
call fcn.0040a308
add esp, 0xc
jmp 0x408ba1
xor eax, eax
push 1
pop ecx
cmp eax, ecx
jne 0x408bd8
cmp dword [0x4178c0], 0
je 0x408bcb
mov eax, dword [0x417c58]
mov eax, dword [esi + eax]
cmp word [eax + 0x26a], bp
jne 0x408bcb
cmp byte [eax + 0x104], 0
jne 0x408beb
mov eax, dword [0x417c58]
mov eax, dword [esi + eax]
and byte [eax], 0
jmp 0x408beb
cmp eax, 2
jne 0x408beb
mov eax, dword [0x417c58]
mov eax, dword [esi + eax]
mov dword [eax + 0x25c], ecx
mov eax, dword [0x417c58]
mov eax, dword [esi + eax]
cmp dword [eax + 0x25c], 0
je 0x408c57
cmp byte [eax], 0
je 0x408c01
add byte [ecx], al
mov edx, 0x5cd90021
inc edi
or byte [eax + 0x31], 0
add byte [ecx], al
loopne 0x408c18
out dx, al
cmpsb byte [esi], byte es:[edi]
and dword [eax], eax
fucomi st(2)
pop edi
aam 0x42
popal
sahf
push edx
mov edx, 0x682751fc
mov byte [0xb06c9537], al
mov dword [0x89cc1bb6], eax
mov esp, 0x45204188
mov dh, 0x22
xor byte [ebx], cl
and bl, cl
dec edi
and byte [edi + 0x57], 0xf0
shr ebx, 1
aas
nop
lahf
mov al, 0xd8
mov ah, 0x9a
das
or byte [edx], 0xd8
pop eax
jo 0x408cd3
mov ebx, 0x4ba2ef1f
lds esp, [ebp + 0x7f29600c]
inc ecx
mov byte [0xca5c54b], al
pushal
sub dword [edi + 0x41], edi
jg 0x408ca1
test eax, 0x5c5bfe3a
shr dword [edx - 0xa], 1
lds ebx, [ebp + 0xe4f4bc4]
dec ebp
out 0x3c, eax
xlatb
pushal
push edx
mov word [esi - 0x67877e13], ds
inc ebx
ret
movsd dword es:[edi], dword [esi]
popal
ja 0x408d11
or eax, 0xade2a93c
sub byte [edx - 0x43cfcb84], 3
iretd
cld
push esp
mov esp, dword [eax + 0x5691c885]
aam 0x11
invalid
mov al, 0x34
add byte [0x56f07888], dh
inc byte [ebx + 0x64f74972]
ret 0x1918
or byte [esi + 0x37410156], al
invalid
invalid
invalid
push esi
invalid