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

Disassembly:
push 0xffffffffffffffff
push 0x494e41
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x68
mov eax, dword [0x5430a4]
push ebx
push esi
push edi
mov dword [esp + 0x70], eax
mov esi, ecx
call fcn.00475ccc
mov ecx, dword [esi + 0x14]
xor ebx, ebx
cmp ecx, ebx
mov edi, eax
je 0x4501be
mov eax, dword [ecx]
call dword [eax + 4]
mov dword [esi + 0x14], ebx
push ebp
mov dword [esi + 0x14], edi
mov dword [esp + 0x1c], ebx
mov dword [esp + 0x20], ebx
mov dword [esp + 0x24], ebx
mov edx, dword [esi + 0x24]
lea ecx, [esi + 0x24]
mov dword [esp + 0x80], ebx
call dword [edx + 0x50]
test al, al
jne 0x4503bb
mov eax, dword [esi + 0x34]
mov ebp, dword [eax + 0x14]
call fcn.0043e696
mov edx, dword [eax]
push ebp
push ebx
push 4
mov ecx, eax
call dword [edx + 0x18]
cmp dword [eax + 0x5c], 2
jne 0x450224
mov eax, dword [esi + 0x34]
mov ebp, dword [eax + 0x14]
call fcn.0043e696
mov edx, dword [eax]
push ebp
push ebx
push 4
mov ecx, eax
call dword [edx + 0x18]
cmp dword [eax + 0xd0], ebx
ja 0x4503bb
mov eax, dword [esi + 0x34]
mov dword [eax + 0x1a4], 2
mov ecx, dword [esi + 0x34]
mov ebp, dword [ecx + 0x14]
call fcn.0043e696
mov edx, dword [eax]
push ebp
push ebx
push 4
mov ecx, eax
call dword [edx + 0x18]
mov eax, dword [eax + 0xc0]
lea ecx, [esp + 0x10]
push ecx
lea ecx, [esp + 0x1c]
mov dword [esp + 0x14], eax
call fcn.0040f540
mov edx, dword [esi + 0x34]
mov ebp, dword [edx + 0x14]
call fcn.0043e696
mov edx, dword [eax]
push ebp
push ebx
push 4
mov ecx, eax
call dword [edx + 0x18]
cmp dword [eax + 0xc8], ebx
jne 0x45029f
mov eax, dword [esi + 0x34]
mov ebp, dword [eax + 0x14]
call fcn.0043e696
mov edx, dword [eax]
push ebp
push ebx
push 4
mov ecx, eax
call dword [edx + 0x18]
cmp dword [eax + 0xcc], ebx
je 0x45038d
mov eax, dword [esi + 0x34]
mov ebp, dword [eax + 0x14]
call fcn.0043e696
mov edx, dword [eax]
push ebp
push ebx
push 4
mov ecx, eax
call dword [edx + 0x18]
mov eax, dword [eax + 0xc8]
lea ecx, [esp + 0x10]
push ecx
lea ecx, [esp + 0x1c]
mov dword [esp + 0x14], eax
call fcn.0040f540
mov edx, dword [esi + 0x34]
mov ebp, dword [edx + 0x14]
call fcn.0043e696
mov edx, dword [eax]
push ebp
push ebx
push 4
mov ecx, eax
call dword [edx + 0x18]
mov eax, dword [eax + 0xcc]
lea ecx, [esp + 0x10]
push ecx
lea ecx, [esp + 0x1c]
mov dword [esp + 0x14], eax
call fcn.0040f540
mov edx, dword [esi + 0x34]
mov ebp, dword [edx + 0x14]
call fcn.0043e696
mov edx, dword [eax]
push ebp
push ebx
push 4
mov ecx, eax
call dword [edx + 0x18]
mov eax, dword [eax + 0xd0]
lea ecx, [esp + 0x10]
push ecx
lea ecx, [esp + 0x1c]
mov dword [esp + 0x14], eax
call fcn.0040f540
lea edx, [esp + 0x10]
push edx
lea ecx, [esp + 0x1c]
mov dword [esp + 0x14], ebx
call fcn.0040f540
mov eax, dword [esi + 0x34]
mov ebp, dword [eax + 0x14]
call fcn.0043e696
mov edx, dword [eax]
push ebp
push ebx
push 4
mov ecx, eax
call dword [edx + 0x18]
mov eax, dword [eax + 0xc0]
lea ecx, [esp + 0x10]
push ecx
lea ecx, [esp + 0x1c]
mov dword [esp + 0x14], eax
call fcn.0040f540
lea edx, [esp + 0x10]
push edx
lea ecx, [esp + 0x1c]
mov dword [esp + 0x14], ebx
call fcn.0040f540
lea eax, [esp + 0x10]
push eax
lea ecx, [esp + 0x1c]
mov dword [esp + 0x14], ebx
call fcn.0040f540
mov ecx, dword [esi + 0x34]
mov ebp, dword [ecx + 0x14]
call fcn.0043e696
mov edx, dword [eax]
push ebp
push ebx
push 4
mov ecx, eax
call dword [edx + 0x18]
mov ecx, dword [esi + 0x34]
mov dx, word [eax + 0xd8]
mov word [ecx + 0x58], dx
mov byte [esp + 0x10], 1
jmp 0x450679
mov eax, dword [esi + 0x24]
lea ecx, [esi + 0x24]
call dword [eax + 0x50]
test al, al
jne 0x4504b7
mov ecx, dword [esi + 0x34]
mov ebp, dword [ecx + 0x14]
call fcn.0043e696
mov edx, dword [eax]
push ebp
push ebx
push 4
mov ecx, eax
call dword [edx + 0x18]
mov dx, word [eax + 0xc0]
mov ecx, dword [esi + 0x34]
mov word [ecx + 0x20], dx
mov eax, dword [esi + 0x34]
mov ebp, dword [eax + 0x14]
call fcn.0043e696
mov edx, dword [eax]
push ebp
push ebx
push 4
mov ecx, eax
call dword [edx + 0x18]
mov dx, word [eax + 0xd0]
mov ecx, dword [esi + 0x34]
mov word [ecx + 0x26], dx
mov eax, dword [esi + 0x34]
mov ebp, dword [eax + 0x14]
call fcn.0043e696
mov edx, dword [eax]
push ebp
push ebx
push 4
mov ecx, eax
call dword [edx + 0x18]
mov dx, word [eax + 0xc8]
mov ecx, dword [esi + 0x34]
mov word [ecx + 0x22], dx
mov eax, dword [esi + 0x34]
mov ebp, dword [eax + 0x14]
call fcn.0043e696
mov edx, dword [eax]
push ebp
push ebx
push 4
mov ecx, eax
call dword [edx + 0x18]
mov dx, word [eax + 0xcc]
mov ecx, dword [esi + 0x34]
mov word [ecx + 0x24], dx
mov eax, dword [esi + 0x34]
mov ebp, dword [eax + 0x14]
call fcn.0043e696
mov edx, dword [eax]
push ebp
push ebx
push 4
mov ecx, eax
call dword [edx + 0x18]
mov edx, dword [eax + 0xc4]
mov ecx, dword [esi + 0x34]
mov dword [ecx + 0x2c], edx
mov eax, dword [esi + 0x34]
mov ebp, dword [eax + 0x14]
call fcn.0043e696
mov edx, dword [eax]
push ebp
push ebx
push 4
mov ecx, eax
call dword [edx + 0x18]
mov edx, dword [eax + 0xd4]
mov ecx, dword [esi + 0x34]
mov dword [ecx + 0x28], edx
mov ecx, dword [esi + 0x34]
or eax, 0xffffffff
mov dword [ecx + 0x30], eax
mov edx, dword [esi + 0x34]
mov dword [edx + 0x34], eax
mov ecx, dword [esi + 0x34]
mov dword [ecx + 0x38], eax
jmp 0x4504c1
mov eax, dword [esi + 0x34]
movzx edx, word [eax + 0x40]
mov dword [eax + 0x14], edx
mov eax, dword [esi + 0x34]
mov cx, 0x3e8
cmp cx, word [eax + 0x26]
sbb edx, edx
neg edx
mov dword [eax + 0x1a4], edx
mov eax, dword [esi + 0x34]
cmp word [eax + 0x40], bx
je 0x450505
mov ebp, dword [eax + 0x14]
call fcn.0043e696
mov edx, dword [eax]
push ebp
push ebx
push 4
mov ecx, eax
call dword [edx + 0x18]
mov eax, dword [eax + 0xc0]
mov dword [esp + 0x10], eax
lea ecx, [esp + 0x10]
jmp 0x45066b
cmp word [eax + 0x20], bx
jne 0x450523
mov edx, dword [eax + 0x1a4]
dec edx
neg edx
sbb edx, edx
and edx, 0xffffff9c
add edx, 0xc1d
mov word [eax + 0x20], dx
mov eax, dword [esi + 0x34]
movzx ecx, word [eax + 0x20]
lea edx, [esp + 0x10]
mov dword [esp + 0x10], ecx
push edx
lea ecx, [esp + 0x1c]
call fcn.0040f540
mov eax, dword [esi + 0x34]
movzx eax, word [eax + 0x22]
cmp eax, 0xf15
je 0x450578
cmp eax, 0xf2b
je 0x450578
cmp eax, 0x10d9
jb 0x45055f
cmp eax, 0x10de
jbe 0x450578
cmp eax, 0xfd4
je 0x450578
cmp eax, 0xfd5
je 0x450578
lea ecx, [esp + 0x10]
mov dword [esp + 0x10], eax
push ecx
jmp 0x450581
lea edx, [esp + 0x10]
mov dword [esp + 0x10], ebx
push edx
lea ecx, [esp + 0x1c]
call fcn.0040f540
mov eax, dword [esi + 0x34]
movzx ecx, word [eax + 0x24]
lea edx, [esp + 0x10]
mov dword [esp + 0x10], ecx
push edx
lea ecx, [esp + 0x1c]
call fcn.0040f540
mov eax, dword [esi + 0x34]
movzx ecx, word [eax + 0x26]
lea edx, [esp + 0x10]
mov dword [esp + 0x10], ecx
push edx
lea ecx, [esp + 0x1c]
call fcn.0040f540
mov eax, dword [esi + 0x34]
movzx eax, word [eax + 0x20]
cmp eax, 0xc1d
mov dword [esp + 0x10], eax
je 0x4505d5
cmp eax, 0xbb9
jne 0x4505e0
lea ecx, [esp + 0x14]
mov dword [esp + 0x14], ebx
push ecx
jmp 0x4505e5
lea edx, [esp + 0x10]
push edx
lea ecx, [esp + 0x1c]
call fcn.0040f540
lea eax, [esp + 0x10]
push eax
lea ecx, [esp + 0x1c]
call fcn.0040f540
mov ecx, dword [esi + 0x34]
movzx eax, word [ecx + 0x22]
cmp eax, 0xf15
je 0x45062d
cmp eax, 0xf2b
je 0x45062d
cmp eax, 0x10d9
jb 0x45061f
cmp eax, 0x10de
jbe 0x45062d
cmp eax, 0xfd4
je 0x45062d
cmp eax, 0xfd5
jne 0x450651
lea edx, [esp + 0x14]
push edx
lea ecx, [esp + 0x1c]
mov dword [esp + 0x18], eax
call fcn.0040f540
mov eax, dword [esi + 0x34]
movzx ecx, word [eax + 0x22]
lea edx, [esp + 0x14]
mov dword [esp + 0x14], ecx
push edx
jmp 0x45066c
lea eax, [esp + 0x14]
push eax
lea ecx, [esp + 0x1c]
mov dword [esp + 0x18], ebx
call fcn.0040f540
mov dword [esp + 0x14], ebx
lea ecx, [esp + 0x14]
push ecx
lea ecx, [esp + 0x1c]
call fcn.0040f540
mov byte [esp + 0x10], bl
mov eax, dword [esp + 0x10]
mov edx, dword [edi]
push eax
mov eax, dword [esi + 0x34]
push ebx
lea ecx, [esp + 0x20]
push ecx
mov ecx, dword [eax + 0x1a4]
push ecx
mov ecx, edi
call dword [edx + 0x60]
mov ebp, dword [edi]
mov ecx, esi
call fcn.0044c910
mov ecx, esi
push eax
call fcn.0044b370
push eax
mov ecx, edi
call dword [ebp + 0x18c]
mov edx, dword [esi + 0x24]
lea ecx, [esi + 0x24]
call dword [edx + 0x50]
test al, al
jne 0x450958
lea ecx, [esp + 0x10]
call dword [0x4ef3f0]
mov eax, dword [esi + 0x34]
mov ebp, dword [eax + 0x14]
mov byte [esp + 0x80], 1
call fcn.0043e696
mov edx, dword [eax]
push ebp
push ebx
push 4
mov ecx, eax
call dword [edx + 0x18]
cmp dword [eax + 0x170], ebx
je 0x450737
mov eax, dword [esi + 0x34]
mov ebp, dword [eax + 0x14]
call fcn.0043e696
mov edx, dword [eax]
push ebp
push ebx
push 4
mov ecx, eax
call dword [edx + 0x18]
mov eax, dword [eax + 0x170]
push eax
lea ecx, [esp + 0x14]
push str._04d
push ecx
call dword [0x4ef3f8]
mov ebp, dword [edi]
add esp, 0xc
lea ecx, [esp + 0x10]
call dword [0x4ef3f4]
push eax
push 0x17
mov ecx, edi
call dword [ebp + 0xf4]
mov edx, dword [esi + 0x34]
mov ebp, dword [edx + 0x14]
call fcn.0043e696
mov edx, dword [eax]
push ebp
push ebx
push 4
mov ecx, eax
call dword [edx + 0x18]
cmp dword [eax + 0x174], ebx
je 0x45079c
mov eax, dword [esi + 0x34]
mov ebp, dword [eax + 0x14]
call fcn.0043e696
mov edx, dword [eax]
push ebp
push ebx
push 4
mov ecx, eax
call dword [edx + 0x18]
mov eax, dword [eax + 0x174]
push eax
lea ecx, [esp + 0x14]
push str._04d
push ecx
call dword [0x4ef3f8]
mov ebp, dword [edi]
add esp, 0xc
lea ecx, [esp + 0x10]
call dword [0x4ef3f4]
push eax
push 0xf
mov ecx, edi
call dword [ebp + 0xf4]
mov edx, dword [esi + 0x34]
mov ebp, dword [edx + 0x14]
call fcn.0043e696
mov edx, dword [eax]
push ebp
push ebx
push 4
mov ecx, eax
call dword [edx + 0x18]
cmp dword [eax + 0x178], ebx
je 0x450801
mov eax, dword [esi + 0x34]
mov ebp, dword [eax + 0x14]
call fcn.0043e696
mov edx, dword [eax]
push ebp
push ebx
push 4
mov ecx, eax
call dword [edx + 0x18]
mov eax, dword [eax + 0x178]
push eax
lea ecx, [esp + 0x14]
push str._04d
push ecx
call dword [0x4ef3f8]
mov ebp, dword [edi]
add esp, 0xc
lea ecx, [esp + 0x10]
call dword [0x4ef3f4]
push eax
push 0xc
mov ecx, edi
call dword [ebp + 0xf4]
mov edx, dword [esi + 0x34]
mov ebp, dword [edx + 0x14]
call fcn.0043e696
mov edx, dword [eax]
push ebp
push ebx
push 4
mov ecx, eax
call dword [edx + 0x18]
cmp dword [eax + 0x17c], ebx
je 0x45087d
mov eax, dword [esi + 0x34]
mov ebp, dword [eax + 0x14]
call fcn.0043e696
mov edx, dword [eax]
push ebp
push ebx
push 4
mov ecx, eax
call dword [edx + 0x18]
mov eax, dword [eax + 0x17c]
push eax
lea ecx, [esp + 0x14]
push str._04d
push ecx
call dword [0x4ef3f8]
mov ebp, dword [edi]
add esp, 0xc
lea ecx, [esp + 0x10]
call dword [0x4ef3f4]
push eax
push 3
mov ecx, edi
call dword [ebp + 0xf4]
mov ebp, dword [edi]
lea ecx, [esp + 0x10]
call dword [0x4ef3f4]
push eax
push 4
mov ecx, edi
call dword [ebp + 0xf4]
mov edx, dword [esi + 0x34]
mov ebp, dword [edx + 0x14]
call fcn.0043e696
mov edx, dword [eax]
push ebp
push ebx
push 4
mov ecx, eax
call dword [edx + 0x18]
cmp dword [eax + 0x180], ebx
je 0x4508e2
mov eax, dword [esi + 0x34]
mov ebp, dword [eax + 0x14]
call fcn.0043e696
mov edx, dword [eax]
push ebp
push ebx
push 4
mov ecx, eax
call dword [edx + 0x18]
mov eax, dword [eax + 0x180]
push eax
lea ecx, [esp + 0x14]
push str._04d
push ecx
call dword [0x4ef3f8]
mov ebp, dword [edi]
add esp, 0xc
lea ecx, [esp + 0x10]
call dword [0x4ef3f4]
push eax
push 8
mov ecx, edi
call dword [ebp + 0xf4]
mov edx, dword [esi + 0x34]
mov ebp, dword [edx + 0x14]
call fcn.0043e696
mov edx, dword [eax]
push ebp
push ebx
push 4
mov ecx, eax
call dword [edx + 0x18]
cmp dword [eax + 0x184], ebx
je 0x450947
mov eax, dword [esi + 0x34]
mov ebp, dword [eax + 0x14]
call fcn.0043e696
mov edx, dword [eax]
push ebp
push ebx
push 4
mov ecx, eax
call dword [edx + 0x18]
mov eax, dword [eax + 0x184]
push eax
lea ecx, [esp + 0x14]
push str._04d
push ecx
call dword [0x4ef3f8]
mov ebp, dword [edi]
add esp, 0xc
lea ecx, [esp + 0x10]
call dword [0x4ef3f4]
push eax
push 6
mov ecx, edi
call dword [ebp + 0xf4]
lea ecx, [esp + 0x10]
mov byte [esp + 0x80], bl
call dword [0x4ef410]
mov edx, dword [edi]
push esi
mov ecx, edi
call dword [edx + 0x3c]
mov ecx, dword [esi + 0x10]
mov edx, dword [esi + 0xc]
mov eax, dword [edi]
push ecx
push edx
mov ecx, edi
call dword [eax + 0x78]
mov ecx, dword [esi + 0x34]
mov eax, dword [esi]
xor edx, edx
mov dl, byte [ecx + 0x18]
mov ecx, esi
push edx
call dword [eax + 0x74]
mov eax, dword [esi + 0x24]
lea ecx, [esi + 0x24]
call dword [eax + 0x50]
test al, al
jne 0x450a18
mov ecx, dword [esi + 0x34]
mov edi, dword [ecx + 0x14]
call fcn.0043e696
mov edx, dword [eax]
push edi
push ebx
push 4
mov ecx, eax
call dword [edx + 0x18]
cmp dword [eax + 0x5c], 2
je 0x450a18
mov eax, dword [esi + 0x34]
mov edi, dword [eax + 0x14]
call fcn.0043e696
mov edx, dword [eax]
push edi
push ebx
push 4
mov ecx, eax
call dword [edx + 0x18]
cmp dword [eax + 0xc4], ebx
je 0x450a78
mov eax, dword [esi + 0x34]
mov edi, dword [eax + 0x14]
call fcn.0043e696
mov edx, dword [eax]
mov ebp, dword [esi]
push edi
push ebx
push 4
mov ecx, eax
call dword [edx + 0x18]
mov eax, dword [eax + 0xc4]
push eax
mov ecx, esi
call dword [ebp + 0x40]
mov ecx, dword [esi + 0x34]
mov edi, dword [ecx + 0x14]
call fcn.0043e696
mov edx, dword [eax]
mov ebp, dword [esi]
push edi
push ebx
push 4
mov ecx, eax
call dword [edx + 0x18]
mov eax, dword [eax + 0xd4]
push eax
mov ecx, esi
call dword [ebp + 0x44]
jmp 0x450a78
mov eax, dword [esi + 0x34]
mov ecx, dword [eax + 0x28]
mov edx, dword [esi]
push ecx
mov ecx, esi
call dword [edx + 0x44]
mov eax, dword [esi + 0x34]
mov ecx, dword [eax + 0x2c]
mov edx, dword [esi]
push ecx
mov ecx, esi
call dword [edx + 0x40]
mov ecx, dword [esi + 0x34]
mov eax, dword [ecx + 0x30]
or eax, 0xff000000
mov dword [ecx + 0x30], eax
mov ecx, dword [esi + 0x14]
mov edx, dword [ecx]
push eax
push 4
call dword [edx + 0x12c]
mov edx, dword [esi + 0x34]
mov edx, dword [edx + 0x34]
mov ecx, dword [esi + 0x14]
mov eax, dword [ecx]
push edx
push 6
call dword [eax + 0x12c]
mov edx, dword [esi + 0x34]
mov edx, dword [edx + 0x38]
mov ecx, dword [esi + 0x14]
mov eax, dword [ecx]
push edx
push 7
call dword [eax + 0x12c]
mov eax, dword [esi + 0x34]
movsx ecx, byte [eax + 0x42]
push ecx
push 0xd
mov ecx, esi
call fcn.00450d90
mov edx, dword [esi + 0x34]
movsx eax, byte [edx + 0x43]
push eax
push 0xe
mov ecx, esi
call fcn.00450d90
mov eax, dword [esi + 0x34]
cmp word [eax + 0x58], bx
pop ebp
je 0x450ace
mov dword [esp + 0x24], 0x42
movzx ecx, word [eax + 0x58]
mov dword [esp + 0x2c], ecx
mov edx, dword [eax + 0x5c]
mov dword [esp + 0x30], edx
mov eax, dword [eax + 0x60]
mov edx, dword [esi]
mov dword [esp + 0x34], eax
lea eax, [esp + 0x24]
push eax
mov ecx, esi
call dword [edx + 0x3c]
mov ecx, dword [esi + 0x34]
mov ax, word [ecx + 0x5a]
cmp ax, bx
je 0x450aeb
mov edx, dword [esi]
push ebx
movzx eax, ax
push 1
push eax
mov ecx, esi
call dword [edx + 0x20c]
mov eax, dword [esi + 0x34]
mov ecx, dword [eax + 0x64]
cmp ecx, ebx
je 0x450b2f
mov dword [esp + 0x44], ecx
mov dword [esp + 0x38], 0x63
mov dl, byte [eax + 0x6c]
mov byte [esp + 0x4c], dl
mov ecx, dword [eax + 0x70]
mov dword [esp + 0x50], ecx
mov edx, dword [eax + 0x3a8c]
mov dword [esp + 0x68], edx
mov eax, dword [eax + 0x3a90]
mov edx, dword [esi]
mov dword [esp + 0x6c], eax
lea eax, [esp + 0x38]
push eax
mov ecx, esi
call dword [edx + 0x38]
mov eax, dword [esi + 0x34]
mov ecx, dword [eax + 0x1c]
mov edx, dword [esi]
push ecx
mov ecx, esi
call dword [edx + 0x1a8]
call fcn.00446f60
cmp dword [eax + 0xb60], ebx
je 0x450b56
push 1
mov ecx, esi
call fcn.0044bd80
mov eax, dword [esp + 0x18]
pop edi
pop esi
cmp eax, ebx
pop ebx
je 0x450b6a
push eax
call fcn.004750a4
add esp, 4
mov ecx, dword [esp + 0x68]
mov dword fs:[0], ecx
mov ecx, dword [esp + 0x64]
call fcn.004754bd
add esp, 0x74
ret