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

Disassembly:
sub esp, 0x64
push ebx
mov ebx, dword [esp + 0x74]
push edi
cmp ebx, 0x300
jg 0x45557e
je 0x45556e
cmp ebx, 0x100
je 0x455577
cmp ebx, 0x200
je 0x455577
pop edi
mov eax, 0xffffffe2
pop ebx
add esp, 0x64
ret
mov ebx, 0x100
mov dword [esp + 0x78], ebx
mov edi, 5
jmp 0x455596
cmp ebx, 0x3c00
je 0x455591
pop edi
mov eax, 0xffffffe2
pop ebx
add esp, 0x64
ret
mov edi, 6
mov eax, dword [esp + 0x74]
xor ecx, ecx
push ebp
xor ebp, ebp
mov dword [esp + 0x30], edi
mov dword [esp + 0x14], ebp
mov dword [esp + 0x10], ecx
push esi
test eax, eax
je 0x455a79
cmp byte [eax], 0
je 0x455a79
xor esi, esi
nop
lea eax, [esp + 0x13]
push eax
lea eax, [esp + 0x40]
push eax
lea eax, [esp + 0x40]
push eax
lea eax, [esp + 0x88]
push eax
call fcn.00457610
add esp, 0x10
cmp esi, edi
jge 0x4555f3
mov eax, dword [esp + 0x38]
mov dword [esp + esi*8 + 0x44], eax
mov eax, dword [esp + 0x3c]
mov dword [esp + esi*8 + 0x48], eax
inc esi
cmp byte [esp + 0x13], 0x3a
je 0x4555c0
mov eax, esi
cmp esi, edi
jge 0x455625
jmp 0x455610
mov dword [esp + eax*8 + 0x48], 0
mov dword [esp + eax*8 + 0x44], 0
inc eax
cmp eax, edi
jl 0x455610
mov ecx, dword [esp + 0x44]
test ecx, ecx
je 0x455636
cmp byte [ecx], 0x23
je 0x45587d
xor ebp, ebp
mov dword [esp + 0x1c], 0xffffffff
xor eax, eax
mov dword [esp + 0x24], ebp
mov dword [esp + 0x28], ebp
mov dword [esp + 0x20], ebp
mov dword [esp + 0x2c], eax
mov dword [esp + 0x30], eax
cmp ebx, 0x3c00
je 0x455899
mov edx, dword [esp + 0x48]
sub edx, ecx
cmp byte [ecx], 0x64
jne 0x4556a4
cmp edx, 1
je 0x455688
cmp edx, 7
jb 0x4556a4
cmp dword [ecx + 1], 0x75616665
jne 0x4556a4
cmp word [ecx + 5], 0x746c
jne 0x4556a4
mov ebx, 0x200
cmp edx, 7
jbe 0x45569b
add ecx, 7
mov dword [esp + 0x44], ecx
jmp 0x4556a4
mov ebp, 1
mov dword [esp + 0x24], ebp
mov eax, dword [esp + ebp*8 + 0x50]
lea edx, [esp + 0x1c]
push edx
lea ecx, [esp + 0x50]
mov dword [esp + 0x44], eax
lea ecx, [ecx + ebp*8]
mov ecx, dword [ecx]
push eax
push ecx
call fcn.004573f0
add esp, 0xc
cmp dword [esp + 0x1c], 0xffffffff
jne 0x4556e7
lea eax, [ebp + 3]
cmp esi, eax
jle 0x4556e7
lea eax, [esp + 0x1c]
push eax
push dword [esp + ebp*8 + 0x64]
push dword [esp + ebp*8 + 0x64]
call fcn.004573f0
add esp, 0xc
mov edx, dword [esp + 0x24]
xor ebp, ebp
mov ecx, dword [esp + edx*8 + 0x48]
mov eax, dword [esp + edx*8 + 0x44]
sub ecx, eax
je case.0x4558a7.7
movsx eax, byte [eax]
add eax, 0xffffff99
cmp eax, 0xe
ja case.0x455713.104
movzx eax, byte [eax + 0x455ae8]
jmp dword [eax*4 + 0x455ad4]
cmp ecx, 1
je 0x455736
cmp ecx, 4
jne case.0x455713.104
mov ecx, dword [esp + edx*8 + 0x44]
cmp word [ecx + 1], 0x6573
jne case.0x455713.104
cmp byte [ecx + 3], 0x72
jne case.0x455713.104
mov ebp, 0x2712
jmp case.0x455713.104
cmp ecx, 1
je 0x455754
cmp ecx, 5
jne case.0x455713.104
mov ecx, dword [esp + edx*8 + 0x44]
cmp dword [ecx + 1], 0x70756f72
jne case.0x455713.104
mov ebp, 0x2714
jmp case.0x455713.104
cmp ecx, 1
je 0x455772
cmp ecx, 5
jne case.0x455713.104
mov ecx, dword [esp + edx*8 + 0x44]
cmp dword [ecx + 1], 0x72656874
jne case.0x455713.104
mov ebp, 0x2716
jmp case.0x455713.104
cmp ecx, 1
je 0x455795
cmp ecx, 4
jne case.0x455713.104
mov ecx, dword [esp + edx*8 + 0x44]
cmp word [ecx + 1], 0x7361
jne case.0x455713.104
cmp byte [ecx + 3], 0x6b
jne case.0x455713.104
mov ebp, 0x2715
lea eax, [ebp - 0x2712]
cmp eax, 4
ja case.0x4558a7.7
jmp dword [eax*4 + 0x455af8]
mov ecx, dword [esp + edx*8 + 0x50]
lea eax, [edx + 2]
cmp esi, eax
jne 0x4557ef
lea edi, [esp + 0x4c]
mov eax, dword [edi + edx*8]
lea edi, [edi + edx*8]
mov edi, dword [esp + 0x34]
cmp eax, ecx
jae 0x4557ef
lea edx, [esp + 0x20]
push edx
push ecx
push eax
call fcn.004574b0
mov edx, dword [esp + 0x30]
add esp, 0xc
test eax, eax
je 0x4557eb
mov eax, 1
jmp 0x455806
mov ecx, dword [esp + 0x40]
lea eax, [edx + 3]
cmp esi, eax
jne 0x455802
lea esi, [esp + 0x4c]
cmp dword [esi + edx*8], ecx
lea esi, [esi + edx*8]
jb case.0x4558a7.7
mov eax, dword [esp + 0x28]
cmp dword [esp + 0x20], 0
jne 0x455a15
jmp 0x455855
cmp dword [esp + 0x1c], 0xffffffff
jne 0x45582a
lea ecx, [esp + 0x4c]
mov eax, dword [ecx + edx*8]
lea ecx, [ecx + edx*8]
cmp eax, dword [esp + edx*8 + 0x50]
jae 0x455851
lea eax, [esp + 0x4c]
mov ecx, dword [eax + edx*8]
lea eax, [eax + edx*8]
mov eax, dword [eax + 4]
mov dword [esp + 0x2c], eax
xor eax, eax
cmp ebp, 0x2712
mov dword [esp + 0x30], ecx
setne al
lea ebp, [eax*2 + 0x2711]
mov eax, dword [esp + 0x28]
sub edx, eax
lea eax, [esp + 0x20]
push eax
push dword [esp + edx*8 + 0x5c]
push dword [esp + edx*8 + 0x5c]
call fcn.004574b0
add esp, 0xc
test eax, eax
jne 0x455a15
mov ebp, 0xffffffec
mov dword [esp + 0x18], ebp
mov ecx, dword [esp + 0x14]
mov eax, dword [esp + 0x7c]
test eax, eax
je 0x455a79
mov ebx, dword [esp + 0x80]
jmp 0x4555b4
mov eax, dword [esp + 0x48]
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 5
ja case.0x4558a7.7
jmp dword [eax*4 + 0x455b0c]
cmp dword [ecx], 0x72657375
jne case.0x4558a7.7
mov ebp, 0x2711
jmp 0x4558d0
cmp dword [ecx], 0x756f7267
jne case.0x4558a7.7
cmp byte [ecx + 4], 0x70
jne case.0x4558a7.7
mov ebp, 0x2713
mov eax, dword [esp + 0x50]
lea edx, [esp + 0x1c]
mov ecx, dword [esp + 0x4c]
mov esi, 1
push edx
push eax
push ecx
mov dword [esp + 0x3c], ecx
mov dword [esp + 0x38], eax
call fcn.004573f0
add esp, 0xc
jmp 0x455956
cmp dword [ecx], 0x656e776f
jne 0x45590d
cmp word [ecx + 4], 0x4072
jne 0x45590d
mov ebp, 0x2712
jmp 0x455954
cmp dword [ecx], 0x756f7267
jne case.0x4558a7.7
cmp word [ecx + 4], 0x4070
jne case.0x4558a7.7
mov ebp, 0x2714
jmp 0x455954
cmp dword [ecx], 0x72657665
jne case.0x4558a7.7
cmp dword [ecx + 4], 0x656e6f79
jne case.0x4558a7.7
cmp byte [ecx + 8], 0x40
jne case.0x4558a7.7
mov ebp, 0x277b
xor esi, esi
lea eax, [esp + 0x20]
push eax
push dword [esp + esi*8 + 0x54]
push dword [esp + esi*8 + 0x54]
call fcn.00457190
add esp, 0xc
test eax, eax
je case.0x4558a7.7
lea eax, [esp + 0x20]
push eax
push dword [esp + esi*8 + 0x5c]
push dword [esp + esi*8 + 0x5c]
call fcn.00456fd0
add esp, 0xc
test eax, eax
je case.0x4558a7.7
mov eax, dword [esp + esi*8 + 0x60]
mov ecx, dword [esp + esi*8 + 0x5c]
sub eax, ecx
cmp eax, 4
jne 0x4559b2
cmp dword [ecx], 0x796e6564
jne case.0x4558a7.7
mov ebx, 0x800
jmp 0x455a00
cmp eax, 5
jne case.0x4558a7.7
cmp dword [ecx], 0x6f6c6c61
jne 0x4559d0
cmp byte [ecx + 4], 0x77
jne 0x4559d0
mov ebx, 0x400
jmp 0x455a00
cmp dword [ecx], 0x69647561
jne 0x4559e5
cmp byte [ecx + 4], 0x74
jne 0x4559e5
mov ebx, 0x1000
jmp 0x455a00
cmp dword [ecx], 0x72616c61
jne case.0x4558a7.7
cmp byte [ecx + 4], 0x6d
jne case.0x4558a7.7
mov ebx, 0x2000
lea eax, [esp + 0x1c]
push eax
push dword [esp + esi*8 + 0x6c]
push dword [esp + esi*8 + 0x6c]
call fcn.004573f0
add esp, 0xc
push dword [esp + 0x84]
mov ecx, dword [esp + 0x34]
mov eax, dword [esp + 0x30]
sub eax, ecx
push eax
push ecx
push dword [esp + 0x28]
push ebp
push dword [esp + 0x34]
push ebx
push dword [esp + 0x94]
call fcn.00455320
add esp, 0x20
cmp eax, 0xffffffec
jl 0x455acc
test eax, eax
je 0x455a66
mov ecx, dword [esp + 0x14]
mov ebp, 0xffffffec
or ecx, ebx
mov dword [esp + 0x18], ebp
mov dword [esp + 0x14], ecx
jmp 0x455881
mov ecx, dword [esp + 0x14]
mov ebp, dword [esp + 0x18]
or ecx, ebx
mov dword [esp + 0x14], ecx
jmp 0x455881
mov ebx, dword [esp + 0x78]
xor edx, edx
mov esi, dword [ebx + 4]
mov eax, esi
test eax, eax
je 0x455aa3
test dword [eax + 4], ecx
je 0x455a8e
inc edx
mov eax, dword [eax]
test eax, eax
jne 0x455a88
test edx, edx
jle 0x455aa3
test ecx, 0x100
je 0x455aa3
add edx, 3
and ecx, 0x100
mov dword [ebx + 8], esi
neg ecx
mov eax, ebp
sbb ecx, ecx
and ecx, 3
mov dword [esp + 0x14], ecx
xor ecx, ecx
cmp edx, dword [esp + 0x14]
setle cl
dec ecx
and ecx, 0x2712
mov dword [ebx + 0xc], ecx
pop esi
pop ebp
pop edi
pop ebx
add esp, 0x64
ret