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

Disassembly:
sub esp, 0x2b4
mov eax, dword [0x67f864]
xor eax, esp
mov dword [esp + 0x2ac], eax
mov eax, dword [esp + 0x2b8]
push ebx
push ebp
mov dword [esp + 0x1c], eax
mov eax, dword [0x690c9c]
mov eax, dword [eax + 0x560]
push esi
mov esi, edx
xor edx, edx
cmp eax, 4
push edi
mov dword [esp + 0x18], esi
mov dword [esp + 0x20], ecx
mov dword [esp + 0x14], edx
mov dword [esp + 0x1c], edx
mov dword [esp + 0x28], edx
mov dword [esp + 0x34], edx
mov dword [esp + 0x2c], edx
mov dword [esp + 0x40], edx
je 0x4952d0
cmp eax, 6
mov dword [esp + 0x38], edx
jne 0x4952d8
mov dword [esp + 0x38], 1
mov ecx, 0xc
lea edi, [esp + 0x48]
rep movsd dword es:[edi], dword [esi]
cmp dword [esp + 0x48], edx
je 0x49552d
mov edi, dword [esp + 0x24]
mov ebp, dword [esp + 0x18]
mov ecx, dword [edi]
mov eax, dword [ebp + 0xac]
test eax, eax
mov ecx, dword [ecx + 0x18c]
mov edx, dword [0x691ca8]
mov dword [0x691ca8], ecx
jne 0x495317
xor esi, esi
jmp 0x495320
movzx esi, word [eax + ecx + 2]
lea eax, [eax + ecx + 4]
mov ecx, dword [esp + 0x48]
cmp ecx, 0xb
mov dword [0x691ca8], edx
je 0x495334
cmp ecx, 0xc
jne 0x49534e
mov edx, dword [eax]
mov edx, dword [edx + 0xe0]
mov ebx, dword [edi + 0x10]
movzx edx, byte [ebx + edx*8 + 4]
shr edx, 2
and edx, 1
mov dword [esp + 0x34], edx
cmp ecx, 0x78
jne 0x49536d
mov eax, dword [eax]
mov ecx, dword [eax + 0xe0]
mov edx, dword [edi + 0x10]
movzx eax, byte [edx + ecx*8 + 4]
shr eax, 2
and eax, 1
mov dword [esp + 0x2c], eax
lea ecx, [esp + 0x1c]
push 1
push ecx
mov eax, esi
call fcn.004ccd50
add esp, 8
test eax, eax
je 0x49544a
mov edx, dword [0x691ca8]
mov eax, dword [esp + 0x1c]
mov word [edx + eax + 2], si
mov edx, dword [esp + 0x1c]
mov ecx, dword [0x691ca8]
mov eax, dword [ebp + 0xac]
test eax, eax
lea ebx, [ecx + edx + 4]
mov edx, dword [edi]
mov edx, dword [edx + 0x18c]
je 0x4953b9
lea eax, [eax + edx + 4]
movzx edi, si
test edi, edi
mov ebp, ecx
mov dword [0x691ca8], ebp
mov ecx, ebx
jle 0x4953f2
mov esi, edi
mov edx, dword [eax]
mov ebp, dword [esp + 0x24]
mov edx, dword [edx + 0xe0]
mov ebp, dword [ebp + 0x10]
mov edx, dword [ebp + edx*8]
mov dword [ecx], edx
add eax, 4
add ecx, 4
sub esi, 1
jne 0x4953cc
mov ebp, dword [0x691ca8]
mov esi, dword [esp + 0x48]
push edi
push ebx
mov ecx, esi
call fcn.00421870
add esp, 8
test eax, eax
jne 0x495454
mov dword [esp + 0x14], 0xca
lea edi, [esp + 0x1c]
call fcn.004cce70
cmp dword [esp + 0x1c], 0
mov eax, dword [esp + 0x20]
mov dword [eax], 0
je 0x495431
lea edi, [esp + 0x1c]
call fcn.004cce70
cmp dword [esp + 0x28], 0
je 0x495b20
lea edi, [esp + 0x28]
call fcn.004cce70
jmp 0x495b20
mov dword [esp + 0x14], 0x64
jmp 0x495417
cmp esi, 0xf
jne 0x4954c4
mov eax, dword [0x690c9c]
mov eax, dword [eax + 0x560]
cmp eax, 3
je 0x49546e
cmp eax, 5
jne 0x4954c4
cmp eax, 5
jne 0x49552d
mov eax, dword [esp + 0x1c]
test eax, eax
je 0x49548f
cmp word [eax + ebp + 2], 0
ja 0x49548b
xor eax, eax
jmp 0x49548f
mov eax, dword [eax + ebp + 4]
mov eax, dword [eax + 0x10]
lea ecx, [eax + eax*2]
mov edx, dword [ecx*8 + 0x62e3a4]
shl edx, 6
movzx eax, word [edx + 0x62c700]
push eax
lea ecx, [esp + 0x2c]
call fcn.004cce40
add esp, 4
test eax, eax
jne 0x49552d
mov dword [esp + 0x14], 0x64
jmp 0x49540e
mov eax, dword [esp + 0x18]
mov edx, dword [eax + 0xb4]
test edx, edx
je 0x49552d
mov eax, dword [esp + 0x24]
lea ecx, [esp + 0x30]
call fcn.004950a0
mov edi, dword [esp + 0x30]
push edi
lea ecx, [esp + 0x2c]
mov eax, edi
call fcn.004cce40
add esp, 4
test eax, eax
je 0x4954b7
mov ecx, dword [esp + 0x28]
mov edx, dword [0x691ca8]
movzx eax, di
add eax, eax
lea esi, [edx + ecx]
mov edx, dword [esp + 0x18]
mov edx, dword [edx + 0xb4]
add eax, eax
push eax
mov eax, dword [esp + 0x28]
xor ecx, ecx
call fcn.004950a0
push eax
add esi, 4
push esi
call fcn.005dffd0
add esp, 0xc
mov eax, dword [esp + 0x54]
imul eax, eax, 0x84
mov edi, dword [eax + 0x62d934]
xor ebp, ebp
test edi, edi
mov dword [esp + 0x3c], ebp
je 0x4955cf
mov ecx, dword [esp + 0x18]
push ecx
call fcn.00494df0
mov ebx, eax
add esp, 4
test ebx, ebx
mov dword [esp + 0x30], ebx
je 0x4955c5
cmp dword [esp + 0x48], 0x5a
mov ebp, ebx
jne 0x4955d5
cmp dword [esp + 0x38], 0
jne 0x4955d5
mov eax, dword [esp + 0x1c]
xor ecx, ecx
call fcn.004cd1b0
mov esi, dword [ebx + 0x38]
push 0
push 0
lea edx, [esp + 0x4c]
push edx
lea ecx, [ebx + 0x30]
push ecx
call fcn.0044c9b0
add esp, 0x10
test eax, eax
jne 0x4955d5
lea edi, [esp + 0x1c]
call fcn.004cce70
mov edx, dword [esp + 0x44]
push esi
mov dword [esp + 0x20], edx
mov dword [esp + 0x44], 1
call fcn.005ce619
add esp, 4
mov dword [esp + 0x58], 0x3b
jmp 0x4955d5
mov dword [esp + 0x14], 0x64
jmp 0x4955d5
mov ebx, dword [esp + 0x30]
xor ebp, ebp
cmp dword [esp + 0x34], 0
je 0x4955ed
xor eax, eax
cmp dword [esp + 0x48], 0xb
sete al
add eax, 0xb
mov dword [esp + 0x48], eax
cmp dword [esp + 0x2c], 0
je 0x49560d
cmp dword [ebp + 0xc], 0
fld1
fsub qword [ebp]
fstp qword [ebp]
je 0x49560d
xor ecx, ecx
cmp dword [ebp + 0x10], ecx
sete cl
mov dword [ebp + 0x10], ecx
cmp dword [esp + 0x14], 0
mov dword [esp + 0x34], 0
jne 0x495626
mov edx, dword [esp + 0x18]
cmp dword [edx + 0x48], 0
jne 0x495637
cmp dword [esp + 0x38], 0
je 0x495671
mov eax, dword [esp + 0x18]
cmp dword [eax + 0x40], 7
jne 0x495671
mov esi, dword [esp + 0x18]
add esi, 0x30
mov ecx, 0xc
lea edi, [esp + 0x78]
rep movsd dword es:[edi], dword [esi]
cmp word [esp + 0x80], 0
je 0x4956c5
lea esi, [esp + 0x78]
call fcn.00494ce0
test eax, eax
je 0x495671
lea ecx, [esp + 0x78]
mov dword [esp + 0x3c], ecx
mov dword [esp + 0x34], 1
cmp dword [esp + 0x14], 0
jne 0x4956d2
mov edx, dword [0x690c9c]
mov ecx, dword [esp + 0x3c]
xor eax, eax
cmp dword [edx + 0x560], 3
mov edx, dword [esp + 0x28]
setne al
xor esi, esi
lea ebx, [esp + 0x48]
push eax
lea eax, [esp + 0x30]
push eax
mov eax, dword [esp + 0x24]
push esi
push 1
push ecx
push edx
push eax
push ebp
call fcn.0043ffe0
mov edi, dword [esp + 0x40]
mov ebx, dword [esp + 0x50]
add esp, 0x20
mov dword [edi], eax
mov dword [esp + 0x1c], esi
mov dword [esp + 0x28], esi
jmp 0x4956d6
mov dword [esp + 0x84], 0
jmp 0x495661
mov edi, dword [esp + 0x20]
cmp dword [edi], 0
jne 0x4956e3
mov dword [esp + 0x14], 0x64
test ebp, ebp
je 0x4956f0
push ebx
call fcn.005ce619
add esp, 4
cmp word [esp + 0x2c], 0
jne 0x4957ca
cmp dword [esp + 0x3c], 0
je 0x4957ca
mov ecx, dword [0x690c9c]
cmp dword [ecx + 0x560], 5
jne 0x4957ca
mov eax, dword [edi]
lea edx, [esp + 0x30]
push edx
push 1
push eax
call fcn.0045b140
mov esi, dword [esp + 0x3c]
add esp, 0xc
cmp esi, 1
jle 0x4957ca
cmp word [eax], 0x3d
jne 0x4957ca
cmp esi, 0x100
jb 0x495750
mov esi, 0x100
add esi, 0xffffffff
lea ecx, [eax + 2]
mov eax, esi
lea edx, [esp + 0xb8]
call fcn.004c7250
mov edx, dword [esp + 0x24]
lea ecx, [esp + 0xb8]
push ecx
push edx
mov word [esp + esi*2 + 0xc0], 0
call fcn.004950f0
mov esi, dword [edi]
lea eax, [esp + 0xc0]
push 1
push eax
call fcn.0045b2c0
mov eax, dword [edi]
mov ecx, dword [eax + 0x10]
add esp, 0x10
cmp ecx, 0x4d
jge 0x4957ca
cmp ecx, 0x1c
jle 0x4957b2
lea ecx, [ecx + ecx*2]
mov ecx, dword [ecx*8 + 0x62e39c]
cmp ecx, 0x1c
jg 0x4957a3
xor edx, edx
cmp ecx, 0x1c
sete dl
mov ecx, edx
test ecx, ecx
je 0x4957ca
mov esi, 3
call fcn.00465d80
cmp dword [esp + 0x14], 0
jne 0x495417
cmp dword [esp + 0x38], 0
mov eax, dword [esp + 0x20]
mov ecx, dword [eax]
mov edx, dword [esp + 0x18]
mov eax, dword [edx + 0xd0]
mov dword [ecx + 0xd0], eax
je 0x4958f0
mov ecx, dword [esp + 0x20]
mov edx, dword [ecx]
mov ecx, dword [esp + 0x18]
mov eax, dword [ecx + 0xc]
imul eax, eax, 0x84
mov ebx, dword [eax + 0x62d960]
test ebx, ebx
mov ebp, dword [eax + 0x62d91c]
mov eax, dword [esp + 0x18]
lea esi, [ecx + 0x60]
lea edi, [edx + 0x60]
mov ecx, 7
rep movsd dword es:[edi], dword [esi]
movsw word es:[edi], word [esi]
mov ecx, dword [eax + 0xcc]
mov dword [edx + 0xcc], ecx
mov edi, eax
je 0x495852
mov edx, dword [ebx]
push edi
call edx
mov edx, dword [ebx + 8]
add esp, 4
push eax
mov eax, dword [esp + 0x24]
mov ecx, dword [eax]
push ecx
call edx
add esp, 8
xor ebx, ebx
cmp ebp, ebx
je 0x4958de
lea eax, [esp + 0x80]
push eax
mov eax, edi
mov ecx, ebp
call fcn.00494d20
mov esi, eax
add esp, 4
cmp esi, ebx
je 0x4958d6
mov eax, dword [edi + 0xc]
mov ecx, dword [esp + 0x20]
imul eax, eax, 0x84
mov edx, dword [ecx]
lea ecx, [esp + 0x78]
mov dword [esp + 0xa8], edx
mov edx, dword [eax + 0x62d91c]
push ecx
mov dword [esp + 0x7c], ebx
mov dword [esp + 0x80], ebx
mov dword [esp + 0x8c], esi
mov dword [esp + 0xa0], ebx
mov dword [esp + 0xa8], ebx
mov dword [esp + 0xa4], 0xffffffff
call edx
add esp, 4
push esi
mov dword [esp + 0x18], eax
call fcn.005ce619
add esp, 4
jmp 0x4958de
mov dword [esp + 0x14], 0x64
cmp dword [esp + 0x14], ebx
mov dword [esp + 0x34], 1
jne 0x495417
mov ebx, dword [esp + 0x18]
cmp dword [ebx + 0xc], 0x10
jne 0x495936
mov ecx, dword [ebx]
xor edx, edx
test ecx, ecx
sete dl
test ecx, ecx
je 0x495919
mov eax, ecx
call fcn.00488d00
test eax, eax
jne 0x495919
mov eax, 1
jmp 0x49591b
xor eax, eax
or edx, eax
cmp ecx, 0x64
je 0x495936
test edx, edx
je 0x495936
mov ebp, dword [esp + 0x20]
mov edi, dword [ebp]
mov eax, ebx
call fcn.00488d30
jmp 0x49593a
mov ebp, dword [esp + 0x20]
mov eax, dword [ebp]
mov ecx, dword [eax + 0xc]
cmp ecx, 1
jne 0x49595d
mov edx, dword [0x690c9c]
cmp dword [edx + 0x10], 0
je 0x49595d
cmp dword [eax + 0x44], 0
jne 0x49595d
cmp dword [eax + 8], 0
je 0x49597f
cmp dword [ebx + 0x44], 0
je 0x495996
cmp dword [eax + 0x44], 0
jne 0x495996
imul ecx, ecx, 0x84
push eax
mov eax, dword [ecx + 0x62d938]
call eax
add esp, 4
test eax, eax
je 0x495996
mov ecx, dword [ebp]
push 1
push 0
push 1
push ecx
call fcn.0045b820
add esp, 0x10
jmp 0x495a1f
mov edx, dword [0x690c9c]
cmp dword [edx + 0xc], 0
je 0x495a1f
mov esi, dword [ebp]
cmp dword [esi + 8], 0
jne 0x495a1f
mov ecx, dword [esi + 0x10]
mov eax, ecx
cmp eax, 0x4d
jge 0x4959df
cmp eax, 0x15
jle 0x4959d1
lea eax, [eax + eax*2]
mov eax, dword [eax*8 + 0x62e39c]
cmp eax, 0x15
jg 0x4959c2
xor edx, edx
cmp eax, 0x15
sete dl
mov eax, edx
test eax, eax
jne 0x495a0d
mov eax, ecx
cmp eax, 0x4d
jge 0x495a1f
cmp eax, 0x1c
jle 0x4959ff
jmp 0x4959f0
lea eax, [eax + eax*2]
mov eax, dword [eax*8 + 0x62e39c]
cmp eax, 0x1c
jg 0x4959f0
xor ecx, ecx
cmp eax, 0x1c
sete cl
mov eax, ecx
test eax, eax
je 0x495a1f
cmp dword [esi + 0x128], 0
jne 0x495a1f
push esi
call fcn.00459a90
add esp, 4
cmp dword [esp + 0x34], 0
je 0x495a60
mov eax, dword [ebp]
mov edx, dword [eax + 0xc]
imul edx, edx, 0x84
cmp dword [edx + 0x62d950], 6
jge 0x495a60
cmp dword [eax + 0xe0], 0xffffffff
jne 0x495a60
mov ecx, dword [eax + 0xc]
imul ecx, ecx, 0x84
mov edx, dword [ecx + 0x62d950]
push eax
mov eax, dword [edx*4 + 0x62d898]
call eax
add esp, 4
cmp dword [esp + 0x40], 0
mov cx, word [esp + 0x2c]
mov esi, dword [esp + 0x24]
je 0x495a93
test cx, cx
jne 0x495a93
cmp dword [esi + 0x14], 0
lea ebx, [esi + 0x14]
je 0x495a8f
mov ecx, dword [ebp]
push ecx
call fcn.004ccf50
mov cx, word [esp + 0x30]
add esp, 4
mov ebx, dword [esp + 0x18]
mov edx, dword [ebx + 0xe0]
mov eax, dword [esi + 0x10]
lea eax, [eax + edx*8]
mov edx, dword [ebp]
mov dword [eax], edx
xor edx, edx
test cx, cx
setne dl
and ecx, 6
or dx, cx
mov word [eax + 4], dx
mov ecx, dword [ebp]
mov edx, dword [ecx]
imul edx, edx, 0x70
movzx ecx, word [edx + 0x630a38]
cmp cx, 0xffff
je 0x495b09
mov edx, dword [ebx + 0xac]
test edx, edx
mov edi, dword [esi]
mov ebx, dword [0x691ca8]
mov edi, dword [edi + 0x18c]
je 0x495ae8
lea edx, [edx + edi + 4]
movzx ecx, cx
mov dword [0x691ca8], ebx
mov edx, dword [edx + ecx*4]
mov ecx, dword [edx + 0xe0]
mov edx, dword [esi + 0x10]
test byte [edx + ecx*8 + 4], 4
je 0x495b09
or word [eax + 4], 4
cmp dword [esp + 0x2cc], 0
je 0x495b20
mov eax, dword [ebp]
cmp dword [eax], 0xf
jne 0x495b20
call fcn.00495030
mov ecx, dword [esp + 0x2bc]
mov eax, dword [esp + 0x14]
pop edi
pop esi
pop ebp
pop ebx
xor ecx, esp
call fcn.005ce60a
add esp, 0x2b4
ret