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

Disassembly:
sub esp, 0x60
push esi
xor esi, esi
mov dword [esp + 0xc], esi
mov dword [esp + 0x3c], esi
mov dword [esp + 0x40], esi
cmp word [esp + 0x78], si
je 0x452efe
mov eax, dword [esp + 0x68]
mov ecx, dword [eax]
mov edx, dword [ecx]
test byte [edx + 0x50], 0x40
je 0x452efe
xor al, al
pop esi
add esp, 0x60
ret
mov eax, dword [esp + 0x6c]
movzx eax, word [eax]
mov dword [esp + 0x38], eax
cmp ax, 0x3f
ja 0x452ef7
movzx ecx, ax
mov eax, 1
xor edx, edx
mov byte [esp + 6], 1
mov dword [esp + 0x14], ecx
call fcn.004adee0
add eax, 0xffffffff
adc edx, 0xffffffff
test dword [esp + 0x74], 0x803
mov dword [esp + 0x54], eax
mov dword [esp + 0x58], edx
mov dword [esp + 0x4c], esi
mov dword [esp + 0x50], esi
mov dword [esp + 0x44], esi
mov dword [esp + 0x48], esi
mov dword [esp + 0x20], 0x182
je 0x452f5f
mov dword [esp + 0x20], 0x183
push ebx
push ebp
push edi
mov dword [esp + 0x28], esi
jmp 0x452f70
mov ecx, dword [esp + 0x4c]
cmp ecx, dword [esp + 0x64]
ja 0x45359f
jb 0x452f8e
mov edx, dword [esp + 0x48]
cmp edx, dword [esp + 0x60]
jae 0x45359f
movzx ecx, word [esp + 0x84]
mov edx, dword [esp + 0x28]
cmp edx, ecx
jg 0x45359f
test edx, edx
jle 0x452fb8
mov eax, dword [esp + 0x18]
mov esi, dword [eax + 8]
mov eax, dword [eax + 0xc]
or dword [esp + 0x50], esi
or dword [esp + 0x54], eax
cmp edx, ecx
jge 0x452fdf
test dword [esp + 0x80], 0x800
mov ecx, dword [esp + 0x7c]
mov eax, dword [ecx + 0x18]
mov ecx, dword [eax + edx*4]
mov dword [esp + 0x18], ecx
jne 0x453575
mov ebp, ecx
jmp 0x452fea
mov ebp, dword [esp + 0x88]
mov dword [esp + 0x18], ebp
test dword [ebp + 0x2c], 0x400
jne 0x453586
mov eax, dword [esp + 0x80]
and eax, 0x80
mov dword [esp + 0x3c], eax
je 0x45300f
xor edx, edx
mov word [ebp + 0x1e], dx
movzx eax, byte [ebp + 0x10]
mov ecx, dword [esp + 0x74]
mov edx, dword [ecx + 4]
lea eax, [eax + eax*8]
mov edi, dword [edx + eax*8 + 0x34]
xor ecx, ecx
cmp dword [esp + 0x20], ecx
mov dword [esp + 0x30], edi
mov dword [esp + 0x1c], ecx
jle 0x453163
mov eax, dword [esp + 0x78]
add eax, 8
mov dword [esp + 0x24], eax
jmp 0x453046
mov edi, dword [esp + 0x30]
mov eax, 1
xor edx, edx
call fcn.004adee0
mov ecx, edx
mov dword [esp + 0x68], eax
and eax, dword [esp + 0x48]
mov dword [esp + 0x6c], ecx
and ecx, dword [esp + 0x4c]
or eax, ecx
jne 0x453147
mov ecx, dword [esp + 0x24]
mov eax, dword [ecx]
call fcn.00412fd0
mov esi, eax
test esi, esi
je 0x453147
mov al, byte [esi]
cmp al, 0xa7
je 0x45308f
cmp al, 0xa9
jne 0x453147
cmp dword [esi + 0x1c], edi
jne 0x453147
movzx edx, word [esp + 0x2c]
mov ecx, dword [esp + 0x54]
mov eax, dword [esp + 0x50]
push edx
movsx edx, word [esi + 0x20]
not ecx
push ecx
not eax
push eax
push edx
mov edx, dword [esp + 0x84]
push edi
add edx, 0x50
xor ecx, ecx
call fcn.00451080
mov edi, eax
add esp, 0x14
test edi, edi
je 0x453147
movzx ebx, word [edi + 0xc]
cmp bx, 1
jne 0x4530fd
movzx edx, word [ebp + 0x30]
xor eax, eax
test edx, edx
jle 0x4530f9
mov ecx, dword [ebp + 0x38]
jmp 0x4530e9
mov ebp, dword [esp + 0x18]
cmp edi, dword [ecx]
je 0x4530f9
movzx ebp, word [ebp + 0x30]
inc eax
add ecx, 4
cmp eax, ebp
jl 0x4530e5
cmp eax, edx
jge 0x453147
test bl, 0x82
je 0x453137
cmp word [esi + 0x20], 0
jl 0x453137
mov eax, dword [esp + 0x74]
mov ecx, dword [esp + 0x24]
mov esi, dword [eax]
mov ecx, dword [ecx]
call fcn.0044b730
mov ebp, eax
mov eax, dword [edi]
mov ecx, esi
call fcn.0044b7b0
test eax, eax
je 0x453147
mov eax, dword [eax]
mov edx, dword [ebp]
call fcn.0040a950
test eax, eax
jne 0x453147
mov edx, dword [esp + 0x68]
mov eax, dword [esp + 0x6c]
or dword [esp + 0x48], edx
or dword [esp + 0x4c], eax
mov ecx, dword [esp + 0x1c]
add dword [esp + 0x24], 0x14
mov ebp, dword [esp + 0x18]
inc ecx
cmp ecx, dword [esp + 0x20]
mov dword [esp + 0x1c], ecx
jl 0x453042
mov ecx, dword [ebp + 0x2c]
test ecx, 0x1000
jne 0x4534a9
xor ebx, ebx
test ecx, 0x100
je 0x453189
mov dword [esp + 0x24], ebx
mov dword [esp + 0x38], ebx
lea eax, [ebx + 1]
jmp 0x4531c6
mov edx, dword [ebp + 0x20]
mov dword [esp + 0x24], edx
cmp edx, ebx
je 0x453604
test byte [edx + 0x38], 4
jne 0x453604
cmp byte [edx + 0x36], 0
movzx eax, word [edx + 0x32]
mov dword [esp + 0x38], eax
movzx eax, word [edx + 0x34]
je 0x4531c1
mov byte [esp + 0x12], 1
test ecx, 0x8000
je 0x4531c6
mov byte [esp + 0x12], 0
movzx eax, ax
cmp eax, ebx
mov byte [esp + 0x16], 0
mov byte [esp + 0x15], 0
mov byte [esp + 0x17], 0
mov dword [esp + 0x40], eax
jle 0x4534a9
mov dword [esp + 0x34], ebx
jmp 0x4531f0
movzx edi, word [ebp + 0x18]
cmp ebx, edi
mov byte [esp + 0x13], 1
jge 0x45325b
movzx ecx, word [ebp + 0x32]
cmp ebx, ecx
jl 0x45325b
mov edx, dword [ebp + 0x38]
mov eax, dword [edx + ebx*4]
movzx ecx, word [eax + 0xc]
mov esi, ecx
and esi, dword [esp + 0x2c]
test si, si
je 0x453230
test ecx, 0x180
je 0x453494
mov byte [esp + 0x12], 0
jmp 0x453494
test cl, 1
je 0x45325b
mov esi, dword [eax]
lea eax, [ebx + 1]
cmp eax, edi
jge 0x45325b
lea ecx, [edx + ebx*4 + 4]
mov edx, dword [ecx]
cmp dword [edx], esi
je 0x453256
movzx edx, word [ebp + 0x18]
inc eax
add ecx, 4
cmp eax, edx
jl 0x453242
jmp 0x45325b
mov byte [esp + 0x13], 0
mov esi, dword [esp + 0x24]
test esi, esi
je 0x453288
mov ecx, dword [esi + 0x1c]
mov cl, byte [ebx + ecx]
mov eax, dword [esi + 4]
mov edx, dword [esi + 0xc]
movsx eax, word [eax + ebx*2]
and cl, 1
mov byte [esp + 0x14], cl
movsx ecx, word [edx + 0x20]
mov dword [esp + 0x1c], eax
cmp eax, ecx
jne 0x453294
jmp 0x45328d
mov byte [esp + 0x14], 0
or eax, 0xffffffff
mov dword [esp + 0x1c], eax
cmp byte [esp + 0x12], 0
je 0x4532c4
test eax, eax
jl 0x4532ba
cmp ebx, edi
jl 0x4532ba
mov edx, dword [esi + 0xc]
mov edx, dword [edx + 4]
mov ecx, eax
shl ecx, 4
test byte [edx + ecx + 4], 0xf
jne 0x4532ba
mov byte [esp + 0x12], 0
cmp eax, 0xfffffffe
jne 0x4532c4
mov byte [esp + 0x12], 0
xor edi, edi
cmp byte [esp + 0x13], 0
je 0x4533a7
mov ebp, dword [esp + 0x78]
add ebp, 8
jmp 0x4532e0
cmp edi, dword [esp + 0x20]
jge 0x4533a7
mov eax, 1
xor edx, edx
mov ecx, edi
call fcn.004adee0
and eax, dword [esp + 0x48]
and edx, dword [esp + 0x4c]
or eax, edx
jne 0x453398
mov eax, dword [ebp]
call fcn.00412fd0
test eax, eax
je 0x453398
test byte [esp + 0x80], 0xc0
jne 0x453327
mov byte [esp + 0x13], 0
mov esi, dword [esp + 0x1c]
cmp esi, 0xffffffff
jl 0x45334d
mov cl, byte [eax]
cmp cl, 0xa7
je 0x45333c
cmp cl, 0xa9
jne 0x453398
mov ecx, dword [esp + 0x30]
cmp dword [eax + 0x1c], ecx
jne 0x453398
movsx edx, word [eax + 0x20]
cmp edx, esi
jmp 0x45336c
mov ecx, dword [esp + 0x24]
mov edx, dword [ecx + 0x28]
mov ecx, dword [esp + 0x34]
mov ecx, dword [edx + ecx + 8]
push ecx
push eax
mov eax, dword [esp + 0x38]
call fcn.0043caa0
add esp, 8
test eax, eax
jne 0x453398
cmp esi, 0xffffffff
je 0x4533d2
mov edx, dword [esp + 0x74]
mov ecx, dword [ebp]
mov esi, dword [edx]
call fcn.0044b730
mov ecx, eax
mov eax, dword [esp + 0x24]
mov edx, dword [eax + 0x20]
mov eax, dword [edx + ebx*4]
mov edx, dword [ecx]
call fcn.0040a950
test eax, eax
je 0x4533ce
inc edi
add ebp, 0x14
cmp byte [esp + 0x13], 0
jne 0x4532e0
test ebx, ebx
je 0x4533b4
movzx edx, word [esp + 0x38]
cmp ebx, edx
jge 0x4533b9
mov byte [esp + 0x12], 0
cmp byte [esp + 0x17], 0
je 0x4534a9
mov byte [esp + 0x12], 1
jmp 0x4534b4
mov esi, dword [esp + 0x1c]
cmp word [esp + 0x3c], 0
je 0x4533e5
mov ecx, dword [esp + 0x18]
lea eax, [ebx + 1]
mov word [ecx + 0x1e], ax
test byte [esp + 0x80], 0x40
jne 0x453447
cmp byte [esp + 0x16], 0
mov eax, dword [esp + 0x78]
lea edx, [edi + edi*4]
je 0x453416
mov cl, byte [eax + edx*4 + 0x10]
mov al, byte [esp + 0x14]
xor al, byte [esp + 0x15]
and cl, 1
cmp al, cl
jne 0x4533a7
mov esi, dword [esp + 0x1c]
jmp 0x453447
mov al, byte [eax + edx*4 + 0x10]
and al, 1
xor al, byte [esp + 0x14]
mov byte [esp + 0x15], al
je 0x453442
mov ecx, dword [esp + 0x28]
mov eax, 1
xor edx, edx
call fcn.004adee0
mov ecx, dword [esp + 0x8c]
or dword [ecx], eax
or dword [ecx + 4], edx
mov byte [esp + 0x16], 1
mov edx, dword [esp + 0x78]
lea ecx, [edi + edi*4]
test byte [edx + ecx*4 + 0x10], 2
je 0x453470
mov eax, dword [esp + 0x18]
movzx ecx, word [eax + 0x18]
cmp ebx, ecx
jne 0x4533a7
or dword [eax + 0x2c], 0x80000
mov esi, dword [esp + 0x1c]
cmp esi, 0xffffffff
jne 0x45347a
mov byte [esp + 0x17], 1
mov eax, 1
xor edx, edx
mov ecx, edi
call fcn.004adee0
or dword [esp + 0x48], eax
or dword [esp + 0x4c], edx
mov ebp, dword [esp + 0x18]
add dword [esp + 0x34], 0x14
inc ebx
cmp ebx, dword [esp + 0x40]
jl 0x4531f0
jmp 0x4533b9
cmp byte [esp + 0x12], 0
je 0x453575
mov eax, dword [esp + 0x18]
mov ecx, dword [eax + 8]
mov edx, dword [eax + 0xc]
or dword [esp + 0x58], ecx
or dword [esp + 0x5c], edx
cmp dword [esp + 0x20], 0
mov dword [esp + 0x1c], 0
jle 0x453575
mov eax, dword [esp + 0x78]
mov ecx, dword [esp + 0x1c]
add eax, 8
mov dword [esp + 0x34], eax
jmp 0x4534f0
mov eax, 1
xor edx, edx
call fcn.004adee0
mov ebx, edx
mov ebp, eax
and eax, dword [esp + 0x48]
mov ecx, ebx
and ecx, dword [esp + 0x4c]
or eax, ecx
jne 0x45355d
mov ecx, dword [esp + 0x34]
mov eax, dword [ecx]
mov edx, dword [esp + 0x74]
push eax
add edx, 0x1f0
push edx
mov dword [esp + 0x48], eax
call fcn.0041f3e0
mov edi, edx
add esp, 8
mov esi, eax
or eax, edi
jne 0x453541
mov edx, dword [esp + 0x40]
call fcn.00423910
test eax, eax
je 0x45355d
mov eax, dword [esp + 0x58]
mov ecx, dword [esp + 0x5c]
not eax
not ecx
and eax, esi
and ecx, edi
or eax, ecx
jne 0x45355d
or dword [esp + 0x48], ebp
or dword [esp + 0x4c], ebx
mov ecx, dword [esp + 0x1c]
add dword [esp + 0x34], 0x14
inc ecx
cmp ecx, dword [esp + 0x20]
mov dword [esp + 0x1c], ecx
jl 0x4534f0
inc dword [esp + 0x28]
cmp byte [esp + 0x12], 0
jne 0x452f70
jmp 0x45359f
cmp byte [ebp + 0x20], 0
je 0x45359f
mov eax, dword [esp + 0x80]
and eax, 0x280
cmp eax, 0x80
jne 0x4535b3
mov ebp, dword [esp + 0x48]
mov edi, dword [esp + 0x4c]
cmp ebp, dword [esp + 0x60]
jne 0x4535bf
cmp edi, dword [esp + 0x64]
jne 0x4535bf
mov al, byte [esp + 0x44]
pop edi
pop ebp
pop ebx
pop esi
add esp, 0x60
ret
cmp byte [esp + 0x12], 0
jne 0x453618
mov ebx, dword [esp + 0x20]
dec ebx
test ebx, ebx
jle 0x453604
nop
cmp ebx, 0x40
jge 0x4535eb
mov eax, 1
xor edx, edx
mov ecx, ebx
call fcn.004adee0
add eax, 0xffffffff
adc edx, 0xffffffff
jmp 0x4535ef
xor eax, eax
xor edx, edx
mov ecx, eax
mov esi, edx
and ecx, ebp
and esi, edi
cmp ecx, eax
jne 0x4535ff
cmp esi, edx
je 0x45360e
dec ebx
test ebx, ebx
jg 0x4535d0
pop edi
pop ebp
pop ebx
xor al, al
pop esi
add esp, 0x60
ret
pop edi
pop ebp
mov al, bl
pop ebx
pop esi
add esp, 0x60
ret
pop edi
pop ebp
pop ebx
or al, 0xff
pop esi
add esp, 0x60
ret