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

Disassembly:
mov ecx, dword [0x58371c]
mov ecx, dword fs:[ecx]
mov ecx, dword [ecx]
lea eax, [esp - 0x28]
cmp eax, dword [ecx + 8]
jbe 0x496d4e
sub esp, 0xa8
mov eax, dword [esp + 0xac]
mov dword [eax + 0xc], 0
mov ecx, dword [esp + 0xb4]
test ecx, ecx
je 0x495b6f
lea eax, [0x5418b8]
mov dword [esp], eax
mov dword [esp + 4], ecx
call fcn.0040a030
mov eax, dword [esp + 8]
mov edx, dword [esp + 0xb4]
mov ecx, eax
mov eax, dword [esp + 0xac]
jmp 0x495b71
mov edx, ecx
test ecx, ecx
jne 0x4965c7
test edx, edx
je 0x496131
mov ecx, dword [edx + 8]
cmp ecx, 0x6e78e923
ja 0x495e67
cmp ecx, 0x43cfbb1f
ja 0x495cef
cmp ecx, 0x338a7ec0
jbe 0x495c55
cmp ecx, 0x4072c7d5
jne 0x495bd0
lea ecx, [0x49d860]
cmp edx, ecx
jne 0x495bc9
nop
mov ecx, dword [esp + 0xb0]
xor edx, edx
jmp 0x496bb8
test edx, edx
jmp 0x496131
cmp ecx, 0x43cfbb1f
jne 0x495c4e
lea ecx, [0x49eca0]
cmp edx, ecx
jne 0x495c47
mov dword [esp], eax
mov eax, dword [esp + 0xb0]
mov dword [esp + 4], eax
call fcn.004950d0
mov eax, dword [esp + 8]
mov ecx, dword [esp + 0xc]
mov dword [esp], 0
mov dword [esp + 4], eax
mov dword [esp + 8], ecx
call fcn.0044dd10
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0xc]
mov ebx, dword [esp + 0xb8]
mov dword [ebx + 4], eax
mov dword [ebx + 8], ecx
mov eax, dword [0x5837b8]
test eax, eax
je 0x495c40
call fcn.00462390
mov dword [edi], edx
mov eax, dword [ebx]
mov dword [edi + 4], eax
mov dword [ebx], edx
jmp 0x496714
test edx, edx
jmp 0x496131
test edx, edx
jmp 0x496131
cmp ecx, 0x2e74d42b
jne 0x495ca2
lea ecx, [0x49d6a0]
cmp edx, ecx
jne 0x495c9b
mov dword [esp], eax
mov eax, dword [esp + 0xb0]
mov dword [esp + 4], eax
mov dword [esp + 8], 0x40
call fcn.00493b80
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0x10]
mov edx, dword [esp + 0xb8]
mov dword [edx], eax
mov dword [edx + 4], ecx
jmp 0x496714
test edx, edx
jmp 0x496131
cmp ecx, 0x338a7ec0
jne 0x495ce8
lea ecx, [0x49d660]
cmp edx, ecx
jne 0x495ce1
mov dword [esp], eax
mov eax, dword [esp + 0xb0]
mov dword [esp + 4], eax
mov dword [esp + 8], 0x20
call fcn.00494110
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0xb8]
mov dword [ecx], eax
jmp 0x496714
test edx, edx
jmp 0x496131
test edx, edx
jmp 0x496131
cmp ecx, 0x510ad14d
jbe 0x495db6
cmp ecx, 0x62de383d
je 0x495d78
cmp ecx, 0x6d448d5d
jne 0x495d2b
lea ecx, [0x49d8a0]
cmp edx, ecx
jne 0x495d24
nop
mov ecx, dword [esp + 0xb0]
xor edx, edx
jmp 0x496a26
test edx, edx
jmp 0x496131
cmp ecx, 0x6e78e923
jne 0x495d71
lea ecx, [0x49d760]
cmp edx, ecx
jne 0x495d6a
mov dword [esp], eax
mov eax, dword [esp + 0xb0]
mov dword [esp + 4], eax
mov dword [esp + 8], 0x20
call fcn.00494110
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0xb8]
mov dword [ecx], eax
jmp 0x496714
test edx, edx
jmp 0x496131
test edx, edx
jmp 0x496131
lea ecx, [0x49d620]
cmp edx, ecx
jne 0x495daf
mov dword [esp], eax
mov eax, dword [esp + 0xb0]
mov dword [esp + 4], eax
mov dword [esp + 8], 0x20
call fcn.00493b80
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0xb8]
mov dword [ecx], eax
jmp 0x496714
test edx, edx
jmp 0x496131
cmp ecx, 0x49163278
jne 0x495e03
lea ecx, [0x49d6e0]
cmp edx, ecx
jne 0x495dfc
mov dword [esp], eax
mov eax, dword [esp + 0xb0]
mov dword [esp + 4], eax
mov dword [esp + 8], 0x40
call fcn.00494110
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0x10]
mov edx, dword [esp + 0xb8]
mov dword [edx], eax
mov dword [edx + 4], ecx
jmp 0x496714
test edx, edx
jmp 0x496131
cmp ecx, 0x510ad14d
jne 0x495e60
lea ecx, [0x49d7e0]
cmp edx, ecx
jne 0x495e59
mov dword [esp], eax
mov eax, dword [esp + 0xb0]
mov dword [esp + 4], eax
mov dword [esp + 8], 0x40
call fcn.00494ed0
movsd xmm0, qword [esp + 0xc]
cvtsd2ss xmm0, xmm0
movsd xmm1, qword [esp + 0x14]
mov eax, dword [esp + 0xb8]
movss dword [eax], xmm0
cvtsd2ss xmm0, xmm1
movss dword [eax + 4], xmm0
jmp 0x496714
test edx, edx
jmp 0x496131
test edx, edx
jmp 0x496131
cmp ecx, 0xba585d67
ja 0x495fb5
cmp ecx, 0x889ce7f8
ja 0x495f22
cmp ecx, 0x7afcd172
jne 0x495ed4
lea ecx, [0x49d820]
cmp edx, ecx
jne 0x495ecd
mov dword [esp], eax
mov eax, dword [esp + 0xb0]
mov dword [esp + 4], eax
mov dword [esp + 8], pe_nt_image_headers32
call fcn.00494ed0
movsd xmm0, qword [esp + 0xc]
movsd xmm1, qword [esp + 0x14]
mov eax, dword [esp + 0xb8]
movsd qword [eax], xmm0
movsd qword [eax + 8], xmm1
jmp 0x496714
test edx, edx
jmp 0x496131
cmp ecx, 0x889ce7f8
jne 0x495f1b
lea ecx, [0x49d5e0]
cmp edx, ecx
jne 0x495f14
mov dword [esp], eax
mov eax, dword [esp + 0xb0]
mov dword [esp + 4], eax
mov dword [esp + 8], 0x10
call fcn.00494110
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0xb8]
mov word [ecx], ax
jmp 0x496714
test edx, edx
jmp 0x496131
test edx, edx
jmp 0x496131
cmp ecx, 0x8f96facd
jne 0x495f68
lea ecx, [0x49d7a0]
cmp edx, ecx
jne 0x495f61
mov dword [esp], eax
mov eax, dword [esp + 0xb0]
mov dword [esp + 4], eax
mov dword [esp + 8], 0x20
call fcn.00494110
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0xb8]
mov dword [ecx], eax
jmp 0x496714
test edx, edx
jmp 0x496131
cmp ecx, 0xba585d67
jne 0x495fae
lea ecx, [0x49d720]
cmp edx, ecx
jne 0x495fa7
mov dword [esp], eax
mov eax, dword [esp + 0xb0]
mov dword [esp + 4], eax
mov dword [esp + 8], 0x20
call fcn.00493b80
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0xb8]
mov dword [ecx], eax
jmp 0x496714
test edx, edx
jmp 0x496131
test edx, edx
jmp 0x496131
cmp ecx, 0xd6631a7c
ja 0x496055
cmp ecx, 0xc3230e0b
jne 0x496008
lea ecx, [0x49d5a0]
cmp edx, ecx
jne 0x496001
mov dword [esp], eax
mov eax, dword [esp + 0xb0]
mov dword [esp + 4], eax
mov dword [esp + 8], 0x10
call fcn.00493b80
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0xb8]
mov word [ecx], ax
jmp 0x496714
test edx, edx
jmp 0x496131
cmp ecx, 0xd6631a7c
jne 0x49604e
lea ecx, [0x49d520]
cmp edx, ecx
jne 0x496047
mov dword [esp], eax
mov eax, dword [esp + 0xb0]
mov dword [esp + 4], eax
mov dword [esp + 8], 8
call fcn.00493b80
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0xb8]
mov byte [ecx], al
jmp 0x496714
test edx, edx
jmp 0x496131
test edx, edx
jmp 0x496131
cmp ecx, 0xe47f76c1
jne 0x4960b0
lea ecx, [0x49d4e0]
cmp edx, ecx
jne 0x4960a9
mov dword [esp], eax
mov eax, dword [esp + 0xb0]
mov dword [esp + 4], eax
call fcn.004950d0
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 8]
mov edx, dword [esp + 0xb8]
mov dword [edx + 4], eax
mov eax, dword [0x5837b8]
test eax, eax
je 0x4960a2
call fcn.00462390
mov dword [edi], ecx
mov eax, dword [edx]
mov dword [edi + 4], eax
mov dword [edx], ecx
jmp 0x496714
test edx, edx
jmp 0x496131
cmp ecx, 0xf3b50de0
jne 0x4960f3
lea ecx, [0x49d560]
cmp edx, ecx
jne 0x4960ef
mov dword [esp], eax
mov eax, dword [esp + 0xb0]
mov dword [esp + 4], eax
mov dword [esp + 8], 8
call fcn.00494110
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0xb8]
mov byte [ecx], al
jmp 0x496714
test edx, edx
jmp 0x496131
cmp ecx, 0xfcd60fce
jne 0x49612f
lea ecx, [0x49d8e0]
cmp edx, ecx
jne 0x49612b
mov dword [esp], eax
mov eax, dword [esp + 0xb0]
mov dword [esp + 4], eax
call fcn.004932b0
movzx eax, byte [esp + 8]
mov ecx, dword [esp + 0xb8]
mov byte [ecx], al
jmp 0x496714
test edx, edx
jmp 0x496131
test edx, edx
je 0x49616d
mov dword [esp + 0x74], edx
mov ecx, dword [esp + 0xb8]
mov dword [esp + 0x78], ecx
mov ecx, dword [esp + 0x74]
test ecx, ecx
je 0x496165
movzx edx, byte [ecx + 0xf]
nop
mov ebx, edx
and edx, 0x1f
test bl, 0x20
jne 0x49615f
or edx, 0x80
mov ebx, dword [esp + 0x78]
jmp 0x496173
xor edx, edx
xor ecx, ecx
xor ebx, ebx
jmp 0x496173
xor edx, edx
xor ecx, ecx
xor ebx, ebx
mov ebp, edx
and edx, 0x1f
nop
cmp edx, 0x16
jne 0x496924
mov dword [esp + 0x60], ebp
mov dword [esp + 0x6c], ebx
mov dword [esp + 0x68], ecx
mov dword [esp], ecx
mov dword [esp + 4], ebx
mov dword [esp + 8], ebp
call fcn.0047bf20
mov eax, dword [esp + 0x14]
mov dword [esp + 0x5c], eax
mov ecx, eax
and eax, 0x1f
mov edx, dword [esp + 0xc]
mov dword [esp + 0x9c], edx
mov ebx, dword [esp + 0x10]
mov dword [esp + 0x98], ebx
nop
cmp eax, 0xc
ja 0x496321
cmp eax, 1
je 0x4962d7
lea ebp, [eax - 2]
cmp ebp, 4
ja 0x496255
test ecx, 0x200
jne 0x4961ec
lea eax, [0x4d1550]
jmp 0x496204
mov dword [esp], edx
mov dword [esp + 4], ebx
mov dword [esp + 8], ecx
call fcn.0047d600
mov eax, dword [esp + 0xc]
mov edx, dword [esp + 0x10]
mov eax, dword [eax + 0x18]
mov dword [esp], edx
call eax
mov eax, dword [esp + 4]
mov ecx, dword [esp + 0xac]
mov dword [esp], ecx
mov ecx, dword [esp + 0xb0]
mov dword [esp + 4], ecx
mov dword [esp + 8], eax
call fcn.00493b80
mov eax, dword [esp + 0x9c]
mov dword [esp], eax
mov eax, dword [esp + 0x98]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x5c]
mov dword [esp + 8], eax
call fcn.0047d1d0
jmp 0x496714
cmp eax, 7
jb 0x496824
test ecx, 0x200
jne 0x49626e
lea eax, [0x4d1550]
jmp 0x496286
mov dword [esp], edx
mov dword [esp + 4], ebx
mov dword [esp + 8], ecx
call fcn.0047d600
mov eax, dword [esp + 0xc]
mov edx, dword [esp + 0x10]
mov eax, dword [eax + 0x18]
mov dword [esp], edx
call eax
mov eax, dword [esp + 4]
mov ecx, dword [esp + 0xac]
mov dword [esp], ecx
mov ecx, dword [esp + 0xb0]
mov dword [esp + 4], ecx
mov dword [esp + 8], eax
call fcn.00494110
mov eax, dword [esp + 0x9c]
mov dword [esp], eax
mov eax, dword [esp + 0x98]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x5c]
mov dword [esp + 8], eax
call fcn.0047d2c0
jmp 0x496714
mov eax, dword [esp + 0xac]
mov dword [esp], eax
mov eax, dword [esp + 0xb0]
mov dword [esp + 4], eax
call fcn.004932b0
movzx eax, byte [esp + 8]
mov ecx, dword [esp + 0x9c]
mov dword [esp], ecx
mov ecx, dword [esp + 0x98]
mov dword [esp + 4], ecx
mov ecx, dword [esp + 0x5c]
mov dword [esp + 8], ecx
mov byte [esp + 0xc], al
call fcn.0047cf80
jmp 0x496714
cmp eax, 0x10
ja 0x496492
cmp eax, 0xe
jbe 0x4963a8
test ecx, 0x200
jne 0x49633f
lea eax, [0x4d1550]
jmp 0x496357
mov dword [esp], edx
mov dword [esp + 4], ebx
mov dword [esp + 8], ecx
call fcn.0047d600
mov eax, dword [esp + 0xc]
mov edx, dword [esp + 0x10]
mov eax, dword [eax + 0x18]
mov dword [esp], edx
call eax
mov eax, dword [esp + 4]
mov ecx, dword [esp + 0xac]
mov dword [esp], ecx
mov ecx, dword [esp + 0xb0]
mov dword [esp + 4], ecx
mov dword [esp + 8], eax
call fcn.00494ed0
mov eax, dword [esp + 0x9c]
mov dword [esp], eax
mov eax, dword [esp + 0x98]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x5c]
mov dword [esp + 8], eax
call fcn.0047d040
jmp 0x496714
mov eax, dword [esp + 0xac]
mov dword [esp], eax
call fcn.00492d20
mov eax, dword [esp + 0xac]
mov dword [esp], eax
call fcn.00493240
mov eax, dword [esp + 0xac]
mov dword [esp], eax
call fcn.00494610
mov eax, dword [esp + 4]
mov dword [esp + 0x94], eax
mov ecx, dword [esp + 8]
mov dword [esp + 0x58], ecx
mov edx, dword [esp + 0x5c]
test edx, 0x200
jne 0x496403
lea ebx, [0x4d1550]
mov ebp, dword [esp + 0x9c]
jmp 0x49642d
mov eax, dword [esp + 0x9c]
mov dword [esp], eax
mov ecx, dword [esp + 0x98]
mov dword [esp + 4], ecx
mov dword [esp + 8], edx
call fcn.0047d600
mov eax, dword [esp + 0xc]
mov edx, dword [esp + 0x10]
mov ebx, eax
mov ebp, edx
mov eax, dword [ebx + 0x18]
mov dword [esp], ebp
call eax
mov eax, dword [esp + 4]
mov ecx, dword [esp + 0xac]
mov dword [esp], ecx
mov ecx, dword [esp + 0x94]
mov dword [esp + 4], ecx
mov ecx, dword [esp + 0x58]
mov dword [esp + 8], ecx
mov dword [esp + 0xc], eax
call fcn.00494c40
movsd xmm0, qword [esp + 0x10]
mov eax, dword [esp + 0x9c]
mov dword [esp], eax
mov eax, dword [esp + 0x98]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x5c]
mov dword [esp + 8], eax
movsd qword [esp + 0xc], xmm0
call fcn.0047d110
jmp 0x496714
cmp eax, 0x17
je 0x4964f1
cmp eax, 0x18
jne 0x496824
mov eax, dword [esp + 0xac]
mov dword [esp], eax
mov eax, dword [esp + 0xb0]
mov dword [esp + 4], eax
call fcn.004950d0
mov eax, dword [esp + 8]
mov ecx, dword [esp + 0xc]
mov edx, dword [esp + 0x9c]
mov dword [esp], edx
mov edx, dword [esp + 0x98]
mov dword [esp + 4], edx
mov edx, dword [esp + 0x5c]
mov dword [esp + 8], edx
mov dword [esp + 0xc], eax
mov dword [esp + 0x10], ecx
call fcn.0047d3c0
jmp 0x496714
test ecx, 0x200
jne 0x496501
lea eax, [0x4d1550]
jmp 0x496519
mov dword [esp], edx
mov dword [esp + 4], ebx
mov dword [esp + 8], ecx
call fcn.0047d600
mov eax, dword [esp + 0xc]
mov edx, dword [esp + 0x10]
mov dword [esp + 0x64], edx
mov dword [esp + 0x34], eax
mov ecx, dword [eax + 0x28]
mov dword [esp], edx
call ecx
mov eax, dword [esp + 4]
mov ecx, dword [esp + 8]
mov eax, dword [eax + 0x50]
mov dword [esp], ecx
call eax
cmp dword [esp + 4], 8
jne 0x49671b
mov eax, dword [esp + 0xac]
mov dword [esp], eax
mov eax, dword [esp + 0xb0]
mov dword [esp + 4], eax
call fcn.004950d0
mov eax, dword [esp + 0xc]
mov dword [esp + 0x38], eax
mov ecx, dword [esp + 8]
mov dword [esp + 0x70], ecx
mov edx, dword [esp + 0x34]
mov dword [esp], edx
mov edx, dword [esp + 0x64]
mov dword [esp + 4], edx
mov dword [esp + 8], eax
call fcn.0047d900
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x18]
mov ebx, dword [esp + 0x9c]
mov dword [esp], ebx
mov ebp, dword [esp + 0x98]
mov dword [esp + 4], ebp
mov esi, dword [esp + 0x5c]
mov dword [esp + 8], esi
mov dword [esp + 0xc], eax
mov dword [esp + 0x10], ecx
mov dword [esp + 0x14], edx
call fcn.0047ce60
xor eax, eax
jmp 0x49670c
mov ecx, dword [ecx + 0x10]
mov edx, dword [esp + 0xb8]
mov dword [esp], edx
lea edx, [0x4d1410]
mov dword [esp + 4], edx
mov dword [esp + 8], eax
mov eax, dword [esp + 0xb0]
mov dword [esp + 0xc], eax
call ecx
mov eax, dword [esp + 0x10]
test eax, eax
jne 0x4965fe
add esp, 0xa8
ret
mov ecx, dword [esp + 0x14]
cmp dword [0x5416f0], eax
je 0x49665d
mov dword [esp + 0xa0], 0
mov dword [esp + 0xa4], 0
mov dword [esp + 0xa0], eax
mov dword [esp + 0xa4], ecx
lea eax, [0x4a3820]
mov dword [esp], eax
lea ecx, [esp + 0xa0]
mov dword [esp + 4], ecx
call fcn.00409e10
mov eax, dword [esp + 8]
lea ecx, [0x4a3820]
mov dword [esp], ecx
mov dword [esp + 4], eax
call fcn.00434a50
mov dword [esp + 0x54], eax
mov dword [esp + 0x90], ecx
mov edx, dword [0x5416f4]
mov dword [esp], eax
mov dword [esp + 4], ecx
mov dword [esp + 8], edx
call fcn.00404990
movzx eax, byte [esp + 0xc]
test al, al
je 0x496698
mov eax, dword [0x5416f8]
mov ecx, dword [0x5416fc]
jmp 0x49660a
mov eax, dword [esp + 0x54]
mov ecx, dword [esp + 0x90]
jmp 0x49660a
mov dword [esp + 0x3c], eax
mov ecx, dword [esp + 0x9c]
mov dword [esp], ecx
mov edx, dword [esp + 0x98]
mov dword [esp + 4], edx
mov ebx, dword [esp + 0x5c]
mov dword [esp + 8], ebx
mov dword [esp + 0xc], eax
call fcn.0047c1c0
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x18]
mov ebx, dword [esp + 0x3c]
mov ebp, dword [esp + 0x70]
movzx esi, byte [ebp + ebx]
mov dword [esp], eax
mov dword [esp + 4], ecx
mov dword [esp + 8], edx
mov dword [esp + 0xc], esi
mov dword [esp + 0x10], 0
call fcn.0047d2c0
mov eax, dword [esp + 0x3c]
inc eax
mov ecx, dword [esp + 0x38]
cmp eax, ecx
jl 0x4966a8
add esp, 0xa8
ret
mov eax, dword [esp + 0x60]
test eax, 0x200
jne 0x4967ff
lea eax, [0x4d1550]
mov ecx, dword [esp + 0x68]
mov eax, dword [eax + 0x80]
mov dword [esp], ecx
call eax
mov eax, dword [esp + 4]
mov ecx, dword [esp + 8]
mov dword [esp], 0
lea edx, [0x4b1811]
mov dword [esp + 4], edx
mov dword [esp + 8], 0x11
mov dword [esp + 0xc], eax
mov dword [esp + 0x10], ecx
call fcn.0044d8d0
mov eax, dword [esp + 0x18]
mov dword [esp + 0x44], eax
mov ecx, dword [esp + 0x14]
mov dword [esp + 0x80], ecx
lea edx, [0x4a3880]
mov dword [esp], edx
call fcn.0040c6a0
mov eax, dword [esp + 4]
mov ecx, dword [esp + 0x44]
mov dword [eax + 4], ecx
mov ecx, dword [0x5837b8]
test ecx, ecx
jne 0x4967ef
mov ecx, dword [esp + 0x80]
mov dword [eax], ecx
lea ecx, [0x4d1330]
mov dword [esp + 0xa0], ecx
mov dword [esp + 0xa4], eax
lea eax, [0x4a3820]
mov dword [esp], eax
lea ecx, [esp + 0xa0]
mov dword [esp + 4], ecx
call fcn.00409e10
mov eax, dword [esp + 8]
lea ecx, [0x4a3820]
mov dword [esp], ecx
mov dword [esp + 4], eax
call fcn.00434a50
call fcn.00462380
mov ecx, dword [esp + 0x80]
mov dword [edi], ecx
jmp 0x4967a3
mov ecx, dword [esp + 0x68]
mov dword [esp], ecx
mov ecx, dword [esp + 0x6c]
mov dword [esp + 4], ecx
mov dword [esp + 8], eax
call fcn.0047d600
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0x10]
jmp 0x496734
mov eax, dword [esp + 0x60]
test eax, 0x200
jne 0x4968ff
lea eax, [0x4d1550]
mov ecx, dword [esp + 0x68]
mov eax, dword [eax + 0x80]
mov dword [esp], ecx
call eax
mov eax, dword [esp + 4]
mov ecx, dword [esp + 8]
mov dword [esp], 0
lea edx, [0x4b1811]
mov dword [esp + 4], edx
mov dword [esp + 8], 0x11
mov dword [esp + 0xc], eax
mov dword [esp + 0x10], ecx
call fcn.0044d8d0
mov eax, dword [esp + 0x18]
mov dword [esp + 0x40], eax
mov ecx, dword [esp + 0x14]
mov dword [esp + 0x7c], ecx
lea edx, [0x4a3880]
mov dword [esp], edx
call fcn.0040c6a0
mov eax, dword [esp + 4]
mov ecx, dword [esp + 0x40]
mov dword [eax + 4], ecx
mov ecx, dword [0x5837b8]
test ecx, ecx
jne 0x4968f2
mov ecx, dword [esp + 0x7c]
mov dword [eax], ecx
lea ecx, [0x4d1330]
mov dword [esp + 0xa0], ecx
mov dword [esp + 0xa4], eax
lea eax, [0x4a3820]
mov dword [esp], eax
lea ecx, [esp + 0xa0]
mov dword [esp + 4], ecx
call fcn.00409e10
mov eax, dword [esp + 8]
lea ecx, [0x4a3820]
mov dword [esp], ecx
mov dword [esp + 4], eax
call fcn.00434a50
call fcn.00462380
mov ecx, dword [esp + 0x7c]
mov dword [edi], ecx
jmp 0x4968a9
mov ecx, dword [esp + 0x68]
mov dword [esp], ecx
mov ecx, dword [esp + 0x6c]
mov dword [esp + 4], ecx
mov dword [esp + 8], eax
call fcn.0047d600
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0x10]
jmp 0x49683d
test ebp, ebp
je 0x496a09
test ebp, 0x200
jne 0x496a09
lea eax, [0x4d1550]
mov eax, dword [eax + 0x80]
mov dword [esp], ecx
call eax
mov eax, dword [esp + 4]
mov ecx, dword [esp + 8]
mov dword [esp], 0
lea edx, [0x4b2339]
mov dword [esp + 4], edx
mov dword [esp + 8], 0x14
mov dword [esp + 0xc], eax
mov dword [esp + 0x10], ecx
call fcn.0044d8d0
mov eax, dword [esp + 0x18]
mov dword [esp + 0x48], eax
mov ecx, dword [esp + 0x14]
mov dword [esp + 0x84], ecx
lea edx, [0x4a3880]
mov dword [esp], edx
call fcn.0040c6a0
mov eax, dword [esp + 4]
mov ecx, dword [esp + 0x48]
mov dword [eax + 4], ecx
mov ecx, dword [0x5837b8]
test ecx, ecx
jne 0x4969f9
mov ecx, dword [esp + 0x84]
mov dword [eax], ecx
lea ecx, [0x4d1330]
mov dword [esp + 0xa0], ecx
mov dword [esp + 0xa4], eax
lea eax, [0x4a3820]
mov dword [esp], eax
lea ecx, [esp + 0xa0]
mov dword [esp + 4], ecx
call fcn.00409e10
mov eax, dword [esp + 8]
lea ecx, [0x4a3820]
mov dword [esp], ecx
mov dword [esp + 4], eax
call fcn.00434a50
call fcn.00462380
mov ecx, dword [esp + 0x84]
mov dword [edi], ecx
jmp 0x4969ad
mov dword [esp], ecx
mov dword [esp + 4], ebx
mov dword [esp + 8], ebp
call fcn.0047d600
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0x10]
jmp 0x49693e
cmp edx, 8
jge 0x496acb
lea ebx, [0x4afc52]
movzx ebp, byte [edx + ebx]
cmp ebp, 0x80
jge 0x496a44
inc edx
jmp 0x496a74
mov dword [esp], ebx
mov dword [esp + 4], 8
mov dword [esp + 8], edx
call fcn.0045c7c0
mov ebp, dword [esp + 0xc]
mov edx, dword [esp + 0x10]
mov eax, dword [esp + 0xac]
mov ecx, dword [esp + 0xb0]
lea ebx, [0x4afc52]
cmp ecx, ebp
jne 0x496a26
mov dword [esp], eax
call fcn.00492d20
mov eax, dword [esp + 0xac]
mov dword [esp], eax
call fcn.00493240
mov eax, dword [esp + 0xac]
mov dword [esp], eax
call fcn.00494610
mov eax, dword [esp + 0xac]
mov dword [esp], eax
mov dword [esp + 0xc], 0x40
call fcn.00494c40
movsd xmm0, qword [esp + 0x10]
mov eax, dword [esp + 0xb8]
movsd qword [eax], xmm0
jmp 0x496714
mov eax, ecx
sar ecx, 0x1f
lea edx, [esp + 0x2c]
mov dword [esp], edx
mov dword [esp + 4], eax
mov dword [esp + 8], ecx
call fcn.0044ddc0
mov dword [esp], 0
lea eax, [0x4b0314]
mov dword [esp + 4], eax
mov dword [esp + 8], 0xb
lea eax, [0x4af9bb]
mov dword [esp + 0x14], eax
mov dword [esp + 0x18], 6
lea eax, [0x4afaf2]
mov dword [esp + 0x1c], eax
mov dword [esp + 0x20], 7
call fcn.0044da00
mov eax, dword [esp + 0x28]
mov dword [esp + 0x4c], eax
mov ecx, dword [esp + 0x24]
mov dword [esp + 0x88], ecx
lea edx, [0x4a3880]
mov dword [esp], edx
call fcn.0040c6a0
mov eax, dword [esp + 4]
mov ecx, dword [esp + 0x4c]
mov dword [eax + 4], ecx
mov ecx, dword [0x5837b8]
test ecx, ecx
jne 0x496ba8
mov ecx, dword [esp + 0x88]
mov dword [eax], ecx
lea ecx, [0x4d1330]
mov dword [esp + 0xa0], ecx
mov dword [esp + 0xa4], eax
lea eax, [0x4a3820]
mov dword [esp], eax
lea ecx, [esp + 0xa0]
mov dword [esp + 4], ecx
call fcn.00409e10
mov eax, dword [esp + 8]
lea ecx, [0x4a3820]
mov dword [esp], ecx
mov dword [esp + 4], eax
call fcn.00434a50
call fcn.00462380
mov ecx, dword [esp + 0x88]
mov dword [edi], ecx
jmp 0x496b5c
cmp edx, 8
jge 0x496c61
lea ebx, [0x4afc52]
movzx ebp, byte [edx + ebx]
cmp ebp, 0x80
jge 0x496bd6
inc edx
jmp 0x496c06
mov dword [esp], ebx
mov dword [esp + 4], 8
mov dword [esp + 8], edx
call fcn.0045c7c0
mov ebp, dword [esp + 0xc]
mov edx, dword [esp + 0x10]
mov eax, dword [esp + 0xac]
mov ecx, dword [esp + 0xb0]
lea ebx, [0x4afc52]
cmp ecx, ebp
jne 0x496bb8
mov dword [esp], eax
call fcn.00492d20
mov eax, dword [esp + 0xac]
mov dword [esp], eax
call fcn.00493240
mov eax, dword [esp + 0xac]
mov dword [esp], eax
call fcn.00494610
mov eax, dword [esp + 0xac]
mov dword [esp], eax
mov dword [esp + 0xc], 0x20
call fcn.00494c40
movsd xmm0, qword [esp + 0x10]
cvtsd2ss xmm0, xmm0
mov eax, dword [esp + 0xb8]
movss dword [eax], xmm0
jmp 0x496714
mov eax, ecx
sar ecx, 0x1f
lea edx, [esp + 0x30]
mov dword [esp], edx
mov dword [esp + 4], eax
mov dword [esp + 8], ecx
call fcn.0044ddc0
mov dword [esp], 0
lea eax, [0x4b0314]
mov dword [esp + 4], eax
mov dword [esp + 8], 0xb
lea eax, [0x4af9bb]
mov dword [esp + 0x14], eax
mov dword [esp + 0x18], 6
lea eax, [0x4afaeb]
mov dword [esp + 0x1c], eax
mov dword [esp + 0x20], 7
call fcn.0044da00
mov eax, dword [esp + 0x28]
mov dword [esp + 0x50], eax
mov ecx, dword [esp + 0x24]
mov dword [esp + 0x8c], ecx
lea edx, [0x4a3880]
mov dword [esp], edx
call fcn.0040c6a0
mov eax, dword [esp + 4]
mov ecx, dword [esp + 0x50]
mov dword [eax + 4], ecx
mov ecx, dword [0x5837b8]
test ecx, ecx
jne 0x496d3e
mov ecx, dword [esp + 0x8c]
mov dword [eax], ecx
lea ecx, [0x4d1330]
mov dword [esp + 0xa0], ecx
mov dword [esp + 0xa4], eax
lea eax, [0x4a3820]
mov dword [esp], eax
lea ecx, [esp + 0xa0]
mov dword [esp + 4], ecx
call fcn.00409e10
mov eax, dword [esp + 8]
lea ecx, [0x4a3820]
mov dword [esp], ecx
mov dword [esp + 4], eax
call fcn.00434a50
call fcn.00462380
mov ecx, dword [esp + 0x8c]
mov dword [edi], ecx
jmp 0x496cf2
call fcn.00460f80
jmp fcn.00495b10