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

Disassembly:
ror byte [edi], cl
test byte [edx*4 - 0x367afffd], bh
dec dword [ebx - 0x2fc4fbbf]
inc esi
adc byte [ebx - 0x76dfdb8c], cl
push esp
and al, 8
add dword [ebx - 0x75fb7438], ecx
inc ecx
add ebx, ebp
fadd dword [ebp - 0x2a7af00a]
add al, 0
add byte [ebx + 0x74890c55], cl
and al, 0x38
mov word [eax], es
add byte [eax], al
add dword [eax], eax
add byte [eax], al
push ebp
mov ebp, esp
sub esp, 0x148
push ebx
mov ebx, dword [ebp + 0x10]
push esi
mov esi, ecx
mov dword [ebp - 0x14], esi
push edi
test bl, 4
jne 0x408b5f
mov byte [ebp - 5], 0
mov edi, dword [ebp + 0xc]
and ebx, 3
mov edx, dword [ebp + 8]
mov dword [ebp + 0x10], ebx
inc dword [edi]
mov ecx, dword [edi]
mov eax, dword [edx + 4]
lea eax, [eax + ecx*4]
mov ecx, dword [eax]
cmp word [ecx + 8], 0
je 0x440fa6
mov eax, dword [0x4c846c]
mov dword [ebp - 0x1c], 0
mov dword [ebp - 0xc], 0
mov byte [ebp - 6], 0
test al, 1
je 0x408ac9
mov ecx, dword [edi]
mov eax, dword [edx + 4]
mov eax, dword [eax + ecx*4]
cmp word [eax + 8], 0x33
jne 0x441273
mov ebx, dword [eax]
mov eax, dword [ebp + 0x10]
mov dword [ebp - 0x2c], ebx
mov dword [ebp - 0x10], 0
cmp eax, 1
jne 0x408a26
cmp dword [0x4c8280], 0
je 0x408a38
cmp byte [0x4c8289], 0
jne 0x441054
mov esi, dword [0x4c8284]
push esi
push ebx
call fcn.00403c30
test al, al
je 0x408a1c
mov ecx, dword [esi]
test ecx, ecx
je 0x408a1c
mov eax, dword [ecx + 0x10]
and eax, 0xff00
mov dword [ebp - 0xc], eax
mov eax, dword [ecx + 0x14]
mov dword [ebp - 0x10], eax
test eax, eax
je 0x4089f0
mov eax, dword [ebp - 0xc]
test eax, 0x100
jne 0x441253
test eax, 0x400
jne 0x441069
mov byte [ebp - 6], 1
mov ecx, dword [ebp + 0x10]
test cl, 1
je 0x408841
cmp ecx, 1
jne 0x441090
cmp dword [0x4c8280], 0
je 0x4410f4
cmp byte [0x4c8289], 0
jne 0x441108
mov esi, dword [0x4c8284]
push esi
push ebx
call fcn.00403c30
test al, al
je 0x40883e
mov ecx, dword [esi]
test ecx, ecx
je 0x40883e
mov eax, dword [ecx + 0x10]
and eax, 0xff00
mov dword [ebp - 0xc], eax
mov eax, dword [ecx + 0x14]
test eax, eax
je 0x40883e
test dword [ebp - 0xc], 0x200
jne 0x4411f4
mov ecx, dword [ebp + 0x10]
test cl, 2
jne 0x408a49
cmp byte [ebp - 5], 0
mov edx, dword [ebp - 0x10]
jne 0x441115
mov eax, dword [ebp + 8]
inc dword [edi]
mov ecx, dword [edi]
mov eax, dword [eax + 4]
mov eax, dword [eax + ecx*4]
cmp word [eax + 8], 0x4e
je 0x408a6f
mov eax, dword [ebp + 8]
mov ecx, dword [edi]
mov edx, dword [eax + 4]
mov eax, dword [edx + ecx*4]
cmp word [eax + 8], 0x41
jne 0x4089b5
cmp byte [ebp - 5], 0
lea eax, [ecx + 1]
mov dword [edi], eax
mov eax, dword [edx + eax*4]
movsx eax, word [eax + 0xa]
mov dword [ebp - 0x30], eax
jne 0x441233
cmp byte [ebp - 6], 0
mov esi, dword [ebp - 0x10]
je 0x4088cc
cmp esi, 0x4c8470
je 0x4088cc
cmp dword [esi + 0xc], 4
je 0x44118f
mov ecx, esi
call fcn.00404dc0
push 0x4c8470
mov ecx, esi
call fcn.00404e60
mov ecx, dword [ebp + 8]
mov edx, dword [edi]
mov eax, dword [ecx + 4]
mov eax, dword [eax + edx*4]
cmp word [eax + 8], 0x4e
je 0x408af5
mov ecx, dword [ecx + 8]
xor ebx, ebx
mov dword [ebp - 0x18], ebx
mov dword [ebp - 0x24], ecx
cmp edx, ecx
jae 0x408999
mov eax, dword [ebp + 8]
mov eax, dword [eax + 4]
lea esi, [eax + edx*4]
mov edi, edi
mov edi, dword [esi]
movzx eax, word [edi + 8]
cmp ax, 0x33
je 0x408943
cmp ax, 0x4e
je 0x408940
cmp ax, 0x4f
je 0x408932
cmp ax, 0x47
je 0x408940
cmp ax, 0x48
je 0x408932
cmp ax, 0x40
je 0x408992
cmp ax, 0x7f
je 0x408996
jmp 0x408936
dec ebx
mov dword [ebp - 0x18], ebx
inc edx
add esi, 4
cmp edx, ecx
jb 0x408900
jmp 0x408996
inc ebx
jmp 0x408933
mov ecx, dword [edi]
mov edi, dword [ebp - 0x2c]
mov ebx, dword [ecx + 4]
cmp ebx, dword [edi + 4]
je 0x408958
mov ebx, dword [ebp - 0x18]
mov ecx, dword [ebp - 0x24]
jmp 0x40890c
mov edi, dword [ebp - 0x2c]
mov ecx, dword [ecx]
mov dword [ebp - 0x28], ecx
mov edi, dword [edi]
mov dword [ebp - 0x20], edi
mov edi, dword [esi]
test ebx, ebx
je 0x44121b
nop
mov edi, dword [ebp - 0x20]
mov cx, word [ecx]
cmp cx, word [edi]
mov edi, dword [esi]
jne 0x408950
mov ecx, dword [ebp - 0x28]
add dword [ebp - 0x20], 2
add ecx, 2
mov dword [ebp - 0x28], ecx
dec ebx
jne 0x408970
jmp 0x44121b
test ebx, ebx
jne 0x40892a
mov edi, dword [ebp + 0xc]
mov eax, dword [ebp - 0x10]
mov ebx, dword [ebp - 0x14]
mov ecx, ebx
push 0xffffffffffffffff
push eax
push edi
push dword [ebp + 8]
call fcn.004053b0
test eax, eax
js 0x44122a
mov eax, dword [ebp + 8]
mov ecx, dword [edi]
mov edx, dword [eax + 4]
mov eax, dword [edx + ecx*4]
movzx eax, word [eax + 8]
cmp ax, 0x7f
je 0x408b44
cmp ax, 0x40
jne 0x44123e
lea eax, [ecx + 1]
mov dword [edi], eax
mov eax, dword [edx + eax*4]
cmp word [eax + 8], 0x33
je 0x408756
jmp 0x44126d
cmp byte [ebp - 5], 0
jne 0x4411da
push dword [ebp + 0x10]
push 0
push 0x4c8470
push ebx
call fcn.004039be
mov dword [ebp - 0x10], eax
cmp byte [ebp - 6], 0
je 0x40883e
jmp 0x4087dd
xor eax, eax
mov dword [ebp - 0x10], eax
jmp 0x4087b8
sub eax, 0
je 0x408b4d
sub eax, 2
jne 0x441012
lea eax, [ebp - 0xc]
mov ecx, 0x4c8270
push eax
push ebx
call fcn.00403f42
jmp 0x408a1e
push 1
lea eax, [ebp - 0xc]
push eax
push ebx
call fcn.00403938
test eax, eax
je 0x40884a
test dword [ebp - 0xc], 0x200
je 0x40884a
jmp 0x4411f4
xor esi, esi
mov edi, 1
cmp byte [ebp - 5], 0
mov dword [ebp - 0x44], esi
mov dword [ebp - 0x3c], esi
mov dword [ebp - 0x38], edi
jne 0x441139
mov byte [ebp - 6], 0
mov ecx, dword [ebp - 0x14]
lea eax, [ebp - 0x1c]
push eax
lea eax, [ebp - 0x144]
push eax
push edx
push dword [ebp + 0xc]
push dword [ebp + 8]
call fcn.0040855e
test eax, eax
js 0x44120e
cmp byte [ebp - 5], 0
jne 0x441150
lea ecx, [ebp - 0x44]
call fcn.00404dc0
mov edi, dword [ebp + 0xc]
jmp 0x40886f
or eax, 1
mov ecx, 0x4c8470
push 0x490980
mov dword [0x4c846c], eax
call fcn.00405278
push 0x43b808
call fcn.00422f70
mov edx, dword [ebp + 8]
add esp, 4
jmp 0x408743
cmp dword [esi + 0xc], 5
jne 0x4411af
push ebx
push dword [edi]
mov ebx, dword [ebp - 0x14]
push ecx
mov ecx, ebx
call fcn.004084e2
test eax, eax
js 0x408b44
mov eax, dword [ebp - 0x1c]
test eax, eax
jle 0x408b27
mov ecx, eax
lea edi, [ebp - 0x144]
xor eax, eax
rep stosd dword es:[edi], eax
mov edi, dword [ebp + 0xc]
push 1
lea eax, [ebp - 0x144]
mov ecx, ebx
push eax
push esi
push edi
push dword [ebp + 8]
call fcn.0040835f
test al, al
jne 0x4089b5
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0xc
cmp dword [0x4c8280], 0
je 0x408a38
jmp 0x44102e
mov byte [ebp - 5], 1
jmp 0x408701
invalid
or esp, dword [esi - 0x77]
invalid
mov ax, word [ebp + ecx*2 - 0x202c]
mov word [ebp + ecx*2 - 0x202a], ax
dec ecx
cmp ecx, edx
jge 0x441026
push 0x22
pop eax
inc esi
mov word [ebp + edx*2 - 0x202c], ax
jmp 0x40596b
push dword gs:[0x4c7278]
call dword [0x490604]
jmp 0x405b37
push eax
call fcn.0040209c
jmp 0x405b78
cmp edi, 0xffffffff
je 0x4410c0
lea ecx, [esp + 0x18]
call fcn.00401607
lea eax, [esp + 0x18]
push eax
push edi
call fcn.00450652
lea eax, [esp + 0x18]
push eax
lea ecx, [esp + 0xc]
call fcn.00401be0
lea ecx, [esp + 0x18]
call fcn.004020b6
push esi
call fcn.00450620
push eax
lea eax, [esp + 0x2c]
push 0x4bb1f4
push eax
call fcn.00413cc8
add esp, 0xc
lea eax, [esp + 0x28]
lea ecx, [esp + 8]
push eax
call fcn.00401d00
push esi
call 0x403315
push eax
lea ecx, [esp + 0xc]
call fcn.00401d00
jmp 0x405b78
or al, 0xfc
invalid
mov esi, dword [eax + 4]
push eax
call fcn.0041145c
pop ecx
mov eax, esi
test esi, esi
jne 0x4410fc
jmp 0x405d8b
mov ecx, esi
push dword [esi + 0x10]
call fcn.004538dd
xor ecx, ecx
mov dword [esp + 0x24], eax
mov dword [edi], eax
cmp dword [esi + 0x40], ecx
je case.0x4054fe.1
cmp eax, ecx
jne 0x405e8f
jmp case.0x4054fe.1
inc esi
dec ebp
cld
inc dword [eax + 0x194be]
add byte [ecx], al
je 0x405fcb
mov eax, dword [esi + 0x1a8]
mov byte [esi + 0x194], bl
jmp 0x44116e
mov dword [ebp - 0x3a8], eax
lea eax, [ebp - 0x3bc]
push eax
push ebx
call dword [0x4904bc]
jmp 0x405fab
xchg ebp, eax
add dword [eax], eax
add bl, ch
invalid
jno 0x4411ff
cld
jmp [edx + 0x20]
pop es
mov dword [ebp - 0x30], ebx
pop ebx
mov dword [ebp - 0x38], edx
cmp ecx, ebx
jl 0x441238
lea eax, [edi + 0x1d0]
mov dword [ebp + 0x14], eax
mov ecx, dword [eax]
test ecx, ecx
je 0x44121f
sub cl, byte [ebp + 0x6a50c445]
add byte [ebx - 1], dl
xor edi, edi
lea eax, [ebp - 0x3c]
push eax
push 0
push ebx
push dword [ecx]
call dword [0x4905d4]
adc eax, 0x4905d4
test eax, eax
mov eax, dword [ebp + 0x14]
je 0x44121f
test dword [ebp - 0x30], 0x1000
add byte [eax], dl
add byte [eax], al
je 0x44121f
mov eax, dword [eax]
mov eax, dword [eax]
cmp eax, dword [edi]
je 0x441230
adc al, 0x8b
inc ebp
adc al, 0x43
mov eax, dword [ebp + 0x14]
inc ebx
add eax, 4
mov dword [ebp + 0x14], eax
cmp ebx, dword [edi + 0x9d0]
add byte [eax], al
jle 0x4411ef
jmp 0x441238
push ebx
mov ecx, edi
call fcn.00452d5b
push 0xfffffffffffffff3
jmp 0x40601d
jmp [edx + 2]
cmp eax, 0x4c7286
add byte [edi], cl
test dh, cl
dec ebp
cld
inc dword [eax - 0x74fffb81]
sbb eax, 0x4905cc
je 0x4412ff
add byte [eax], al
cmp byte [edi + 8], 0
jne 0x441329
push dword [edi]
call ebx
or esi, 0xffffffff
test eax, eax
jle 0x4412a0
push 0
push esi
push esi
push 0x490980
push 0
mov ecx, edi
mov dword [edi + 0x9d0], 4
mov esi, dword [0x4905c0]
push 0
push 5
push dword [edi]
call esi
push 0
push 4
push dword [edi]
call esi
push 0
push 6
push dword [edi]
call esi
push 0
push 3
push dword [edi]
call esi
mov byte [edi + 8], 0