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

Disassembly:
or byte [ebx + 0x308b0447], cl
mov ecx, esi
call fcn.004084a6
mov eax, dword [edi + 4]
mov ebx, dword [esi + 8]
mov esi, dword [eax + 4]
mov ecx, esi
call fcn.004084a6
mov eax, dword [esi + 8]
lea ecx, [esp + 0x28]
mov dword [esp + 0x38], eax
xor esi, esi
mov dword [esp + 0xc], 1
call fcn.0040d3d2
cmp dword [edi + 8], 3
jb 0x408879
mov eax, dword [edi + 4]
mov ecx, dword [eax + 8]
call fcn.0040cdb4
mov esi, eax
test esi, esi
js 0x408c51
cmp esi, 4
jg 0x408c51
cmp dword [edi + 8], 4
jae 0x47d370
mov eax, dword [esp + 0xc]
cmp eax, 1
jl 0x408c58
push dword [esp + 0x38]
dec eax
lea ecx, [esp + 0x7c]
mov dword [esp + 0x10], eax
call fcn.00405be9
mov edi, eax
test edi, edi
jne 0x47d380
push ebx
lea ecx, [esp + 0x7c]
call fcn.00407e36
test esi, esi
je 0x47d3c2
cmp esi, 1
je 0x47d40c
cmp esi, 2
je 0x47d4ce
cmp esi, 3
jne 0x47d609
mov ebx, dword [esp + 0x34]
xor eax, eax
mov dword [esp + 0x18], 0x49dbf4
mov dword [esp + 0x1c], edi
mov dword [esp + 0x20], edi
mov dword [esp + 0x3c], eax
mov dword [esp + 0x24], eax
mov edx, dword [esp + 0xc]
mov edi, dword [esp + 0xa0]
jmp 0x408910
mov ecx, dword [esp + 0x9c]
test ecx, ecx
je 0x408bee
cmp byte [esp + 0x88], 0
je 0x408bee
cmp edx, 0xffffffff
je 0x408bee
cmp edx, edi
jg 0x408bee
push dword [esp + 0xa8]
mov eax, dword [esp + 0xb4]
push dword [esp + 0xa8]
or eax, dword [esp + 0xc0]
push eax
push edx
push edi
push dword [esp + 0x8c]
call fcn.00408ca0
add esp, 0x18
mov dword [esp + 0xac], eax
test eax, eax
jle 0x408be0
mov ecx, dword [esp + 0xa4]
mov edi, dword [esp + 0xa0]
mov edx, dword [ecx + 4]
mov dword [esp + 0xb0], 0
mov esi, dword [ecx]
cmp esi, dword [ecx + 4]
je 0x47d55c
mov dword [esp + 0xc], edx
mov ecx, eax
mov dword [esp + 0x38], ecx
test ecx, ecx
je 0x408bee
cmp ecx, 2
jge 0x408bd6
xor esi, esi
cmp esi, ecx
jae 0x408910
lea ecx, [esi*8]
mov dword [esp + 0x44], ecx
cmp esi, eax
jge 0x47d5bc
mov eax, dword [esp + 0x78]
mov dword [esp + 0x70], eax
test esi, esi
js 0x408c69
add ecx, dword [esp + 0xa4]
mov dword [esp + 0x5c], ecx
mov eax, dword [ecx + 4]
sub eax, dword [ecx]
mov ecx, dword [0x4bbddc]
mov dword [esp + 0x74], eax
add eax, eax
mov dword [esp + 0x40], eax
add eax, 2
push eax
cmp ecx, 0x40a0b1
jne 0x408c62
call fcn.004245ec
mov edi, eax
add esp, 4
test edi, edi
je 0x408c69
mov eax, dword [esp + 0x74]
mov ecx, dword [esp + 0x70]
add eax, eax
push eax
mov eax, dword [esp + 0x60]
mov eax, dword [eax]
lea eax, [ecx + eax*2]
push eax
push edi
call fcn.0041faa0
mov eax, dword [esp + 0x4c]
add esp, 0xc
xor ecx, ecx
mov word [eax + edi], cx
mov eax, edi
mov dword [esp + 0x10], eax
test eax, eax
je 0x47d5d6
push eax
call fcn.004218fb
mov ecx, dword [ebx]
add esp, 4
mov edi, eax
mov dword [esp + 0x2c], edi
cmp ecx, 1
jle 0x408c2c
dec ecx
push 4
mov dword [ebx], ecx
call fcn.0042010a
mov ebx, eax
add esp, 4
test ebx, ebx
je 0x408c72
mov dword [ebx], 1
lea eax, [edi + 1]
mov dword [esp + 0x34], ebx
test eax, eax
je 0x408c79
add eax, 7
and eax, 0xfffffff8
xor ecx, ecx
mov dword [esp + 0x30], eax
mov edx, 2
mul edx
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.0041fa89
add esp, 4
mov dword [esp + 0x28], eax
lea eax, [edi*2 + 2]
push eax
push dword [esp + 0x14]
push dword [esp + 0x30]
call fcn.0041faa0
add esp, 0xc
mov eax, dword [0x4bb80c]
push dword [esp + 0x10]
cmp eax, 0x40a0ac
jne 0x408c83
call fcn.004228ca
add esp, 4
mov eax, dword [esp + 0x3c]
cmp dword [esp + 0x20], eax
je 0x408b67
push 0x10
call fcn.0042010a
add esp, 4
test eax, eax
je 0x408c8a
mov ecx, dword [esp + 0x28]
mov dword [eax], ecx
mov ecx, dword [esp + 0x30]
mov dword [eax + 4], edi
mov dword [eax + 8], ecx
mov dword [eax + 0xc], ebx
inc dword [ebx]
mov ecx, dword [esp + 0x20]
mov edx, dword [esp + 0x1c]
inc ecx
mov dword [edx + ecx*4 - 4], eax
mov dword [esp + 0x20], ecx
mov ecx, dword [esp + 0x44]
inc esi
add ecx, 8
mov dword [esp + 0x44], ecx
cmp esi, dword [esp + 0x38]
jae 0x4088f7
mov eax, dword [esp + 0xac]
jmp 0x4089d2
add eax, eax
mov dword [esp + 0x3c], eax
cmp eax, 8
jb 0x408c43
xor ecx, ecx
mov dword [esp + 0x24], eax
mov edx, 4
mul edx
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.0042010a
add esp, 4
cmp dword [esp + 0x1c], 0
mov edx, eax
mov dword [esp + 0x40], edx
je 0x408bcd
mov eax, dword [esp + 0x20]
test eax, eax
je 0x408bcd
lea ecx, [eax*4]
push ecx
push dword [esp + 0x20]
push edx
call fcn.0041faa0
add esp, 0xc
push dword [esp + 0x1c]
call fcn.0042017e
mov edx, dword [esp + 0x44]
add esp, 4
mov dword [esp + 0x1c], edx
jmp 0x408b0d
mov esi, 1
jmp 0x4089bf
cmp dword [esp + 0xb0], 0
jne 0x47d578
cmp dword [esp + 0x20], 0
je 0x47d5f0
mov ecx, dword [ebp + 0xc]
lea eax, [esp + 0x18]
push eax
call fcn.00412490
lea ecx, [esp + 0x18]
call fcn.00407da8
lea ecx, [esp + 0x28]
call fcn.00405cd3
lea ecx, [esp + 0x78]
call fcn.00405cbb
pop edi
pop esi
xor eax, eax
pop ebx
mov esp, ebp
pop ebp
ret 8
push edi
lea ecx, [esp + 0x2c]
call fcn.00407eda
mov ebx, dword [esp + 0x34]
mov edi, dword [esp + 0x2c]
jmp 0x408acf
invalid
mov eax, 8
mov dword [esp + 0x3c], eax
jmp 0x408b76
xor esi, esi
jmp 0x408879
mov eax, 1
jmp 0x408890
call ecx
jmp 0x408a1f
mov eax, dword [esp + 0x10]
jmp 0x408a5a
xor ebx, ebx
jmp 0x408a99
mov eax, 8
jmp 0x408aae
call eax
jmp 0x408b00
xor eax, eax
jmp 0x408b34
les eax, [eax*4 - 0x5f97517]
inc dword [ebp + eax*2 + 8]
push esp
cli
dec dword [edx]
push eax
push 0x72
xor al, 0x88
invalid
add byte [eax + eax], cl
jne 0x47d3bb
or byte [ebx + 0x68582474], cl
mov edx, dword [ebp - 1]
jmp 0xe89e0482
xor byte [esi - 0x18], dl
call 0x9d3dd3e0
inc edi
or al, 0x33
rcl byte [esi - 0x75], 0x74
and al, 0x4c
mov word [esi + 0x1fffe], ax
mov esi, dword [esp + 0x1c]
call 0xea42239d
je 0x47d3c8
push eax
jmp 0x47d357
sub edi, ebx
jmp 0x47d2e185
add al, 0x8b
add al, 0x8b
dec eax
or al, 0xe8
cmp edx, edi
clc
stc
call 0xfa40ce06
jmp 0x564088d9
cmpsd dword [esi], dword es:[edi]
clc
stc
jmp 0xe9408c61
retf
dec dword [ebx + 0x5750288b]
mov byte [ebx + 0x751e8085], 9
push ds
jne 0x47d568
call 0xfe442da5
and dword [edi + 0x30], 0x75
adc dword [ebx - 0x17b31731], ecx
bound ebp, qword [eax + edx*4 - 0x7295a818]
dec esp
call 0xe8d881d4
push edi
push 0xffffffffffffff8d
push 1
inc eax
push eax
push eax
push ebx
call 0xea472372
add esp, 0x10
mov ecx, edi
call 0x8b7ebdd2
jne 0x47d56c
inc edi
cmp edi, esi
jl 0x47d552
mov eax, dword [esp + 0xc]
mov esi, dword [esp + 0x14]
inc eax
mov eax, dword [edx]
cmp dword [eax], 6
or byte [ebx - 0x1731fbba], cl
push edx
cmpsb byte [esi], byte es:[edi]
and ebx, dword [edx - 6]
mov bl, 0xb6
clc
invalid
out dx, eax
mov al, 0x1e
jne 0x47d5ca
jmp 0x47d5ec
cmp eax, 0xffffffff
jne 0x408c40
invalid
or al, 0x6a
lea ebp, [edx + 1]
inc eax
adc byte [eax - 0x3a], dl
add dword [ebp + 0x9751e80], 0xffffffc7
call fcn.0040881e
adc eax, 0x15151515
adc eax, 0xe8151515
or cl, ch
mov edi, dword ss:[esp + 0x51005a0]
call 0x3730dee8
mov edi, dword [esp + 0x51005a0]
mov edx, dword [esp + 0xc]
mov ecx, eax
mov eax, dword [ebp + eax*4 + 0xf20004]
jmp 0xe94789fa