Function at 0x493d40
Capabilities:
Enumerate pe sections
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x10c
mov eax, dword [0x57a040]
xor eax, esp
mov dword [esp + 0x108], eax
mov eax, dword [ebp + 8]
push ebx
push esi
mov dword [esp + 0xc], eax
mov ebx, ecx
push edi
lea eax, [esp + 0x10]
mov ecx, 0x9ed0c4
push eax
lea eax, [esp + 0x28]
push eax
call fcn.00405650
mov esi, dword [esp + 0x2c]
mov ecx, dword [0x9ed0c4]
mov eax, dword [ebp + 8]
cmp byte [esi + 0xd], 0
jne 0x493d92
cmp eax, dword [esi + 0x10]
jge 0x493d94
mov esi, ecx
cmp esi, ecx
je 0x4952c9
add esi, 0x14
lea edi, [esp + 0x30]
mov ecx, 0x38
rep movsd dword es:[edi], dword [esi]
and word [ebx + 6], 0xf
mov edx, dword [esp + 0x34]
mov ecx, dword [ebp + 0x28]
mov word [ebx + 4], ax
mov al, byte [ebp + 0xc]
mov byte [ebx + 0x9c], al
mov al, byte [ebp + 0x10]
mov byte [ebx + 0x9d], al
mov al, byte [ebp + 0x14]
mov byte [ebx + 0x9e], al
mov al, byte [ebp + 0x18]
mov byte [ebx + 0x9f], al
mov al, byte [ebp + 0x20]
mov byte [ebx + 0xcc], al
mov al, byte [ebp + 0x24]
mov byte [ebx + 0xd2], al
mov al, byte [ebp + 0x2c]
mov dword [esp + 0x14], edx
mov byte [ebx + 8], dl
mov byte [ebx + 0xb6], 0
mov byte [ebx + 0xd8], al
test ecx, ecx
jne 0x493e25
mov dword [ebx + 0xd3], 0xffffffff
mov byte [ebx + 0xd7], 0xff
mov al, byte [ebx + 8]
mov byte [esp + 0xf], al
jmp 0x493e3a
mov eax, dword [ecx]
mov dword [ebx + 0xd3], eax
mov al, byte [ecx + 4]
mov byte [ebx + 0xd7], al
mov byte [esp + 0xf], dl
movzx edx, word [ebx + 4]
mov ecx, edx
cmp dx, 0x13
je 0x493e6e
mov eax, 0x40d
cmp dx, ax
je 0x493e6e
mov eax, 0x812
cmp dx, ax
je 0x493e6e
mov eax, 0xa0a
cmp dx, ax
je 0x493e6e
mov eax, 0xa24
cmp dx, ax
jne 0x493e72
xor al, al
jmp 0x493e75
mov al, byte [ebp + 0x18]
mov esi, 0x1a03
cmp dx, si
je 0x493e9e
xor edx, edx
movzx eax, al
cmp byte [esp + 0xf], 7
cmovne edx, eax
mov eax, 0x1a25
mov dword [esp + 0x1c], edx
movzx edx, word [ebx + 4]
cmp dx, ax
jne 0x493ea3
mov byte [esp + 0x1c], 0
mov al, byte [ebp + 0x1c]
mov dl, al
and dl, 3
cmp dl, 1
je 0x493eb5
cmp dl, 2
jne 0x493ec4
mov dl, al
and dl, 0xc
cmp dl, 4
je 0x493ec8
cmp dl, 8
je 0x493ec8
xor al, al
jmp 0x493eca
and al, 0xf
mov byte [ebx + 0xb6], al
mov eax, 0x1c17
cmp cx, ax
je 0x493f24
mov eax, 0x1c18
cmp cx, ax
je 0x493f24
mov eax, 0x1c19
cmp cx, ax
je 0x493f24
mov eax, 0x1c1a
cmp cx, ax
je 0x493f24
mov eax, 0x1c41
cmp cx, ax
je 0x493f24
mov eax, 0x1c42
cmp cx, ax
je 0x493f24
mov eax, 0x1c43
cmp cx, ax
je 0x493f24
mov eax, 0x1c44
cmp cx, ax
je 0x493f24
xor al, al
jmp 0x493f26
mov al, 1
push 0
push 0
movsx esi, cx
push 0
push esi
mov byte [ebx + 0xb5], al
call fcn.0049cad0
xorps xmm2, xmm2
test eax, eax
jne 0x493f47
xorps xmm0, xmm0
jmp 0x493f69
movzx eax, byte [ebx + 0xb6]
push eax
mov eax, dword [esp + 0x20]
movzx eax, al
push eax
movsx eax, word [ebx + 6]
push eax
push esi
call fcn.0049cad0
movd xmm0, eax
cvtdq2ps xmm0, xmm0
movss dword [ebx + 0x24], xmm0
mov eax, dword [esp + 0xb4]
cvtps2pd xmm1, xmm0
mov dword [ebx + 0x80], eax
mov al, byte [esp + 0xa4]
mov byte [ebx + 0xb], al
mov al, byte [esp + 0x94]
mov byte [ebx + 0xa], al
movzx eax, word [esp + 0x88]
movaps xmm0, xmm1
mov word [ebx + 0xe], ax
mulsd xmm0, qword [0x56a768]
movzx eax, word [esp + 0x8c]
mov word [ebx + 0x10], ax
mov al, byte [esp + 0xa0]
mov byte [ebx + 0x12], al
movzx eax, word [esp + 0x98]
cvtpd2ps xmm5, xmm0
mov word [ebx + 0x14], ax
movzx eax, word [esp + 0x9c]
mov word [ebx + 0x16], ax
mov al, byte [esp + 0xa8]
mov byte [ebx + 0xc], al
movzx eax, word [esp + 0x90]
movaps xmm0, xmm1
mulsd xmm0, qword [0x56a760]
mov word [ebx + 0x1e], ax
movss dword [ebx + 0xa0], xmm5
cvtpd2ps xmm4, xmm0
movaps xmm0, xmm1
mulsd xmm1, qword [0x56a748]
mulsd xmm0, qword [0x56a758]
movss dword [ebx + 0xa4], xmm4
cvtpd2ps xmm1, xmm1
cvtpd2ps xmm3, xmm0
movss dword [ebx + 0xac], xmm1
movss dword [ebx + 0xa8], xmm3
movss xmm0, dword [ebx + 0x20]
ucomiss xmm0, xmm2
mov dword [ebx + 0xb0], 0x3f800000
lahf
test ah, 0x44
jp 0x49405f
mov dword [ebx + 0xb0], 0
jmp 0x4940a1
comiss xmm1, xmm0
jbe 0x494070
mov dword [ebx + 0xb0], 0x3f000000
jmp 0x4940a1
comiss xmm3, xmm0
jbe 0x494081
mov dword [ebx + 0xb0], 0x3f19999a
jmp 0x4940a1
comiss xmm4, xmm0
jbe 0x494092
mov dword [ebx + 0xb0], 0x3f333333
jmp 0x4940a1
comiss xmm5, xmm0
jbe 0x4940a1
mov dword [ebx + 0xb0], 0x3f4ccccd
movzx eax, word [ebx + 6]
mov edx, 0xff
mov ecx, eax
mov esi, dword [esp + 0x84]
mov dword [esp + 0x20], ecx
mov edi, esi
movsx ecx, ax
mov eax, ecx
mov dword [esp + 0x10], ecx
imul eax, dword [esp + 0xbc]
mov dword [esp + 0x18], esi
cmp eax, edx
cmovg eax, edx
mov byte [ebx + 0x70], al
mov eax, ecx
imul eax, dword [esp + 0xc0]
cmp eax, edx
cmovg eax, edx
mov byte [ebx + 0x71], al
mov eax, ecx
imul eax, dword [esp + 0xc4]
cmp eax, edx
cmovg eax, edx
mov byte [ebx + 0x72], al
mov eax, ecx
imul eax, dword [esp + 0xc8]
cmp eax, edx
cmovg eax, edx
mov byte [ebx + 0x73], al
mov eax, ecx
imul eax, dword [esp + 0xcc]
cmp eax, edx
cmovg eax, edx
mov byte [ebx + 0x74], al
mov eax, ecx
imul eax, dword [esp + 0xd0]
cmp eax, edx
cmovg eax, edx
mov byte [ebx + 0x75], al
mov eax, ecx
imul eax, dword [esp + 0xd4]
cmp eax, edx
cmovg eax, edx
cmp byte [esp + 0x1c], 0
mov byte [ebx + 0x76], al
jne 0x494152
cmp byte [ebx + 0xb6], 0
je 0x494159
add edi, 0x19
mov dword [esp + 0x18], edi
mov edx, dword [esp + 0xdc]
xor eax, eax
mov dword [ebx + 0x62], eax
mov dword [ebx + 0x66], eax
mov dword [ebx + 0x6a], eax
mov word [ebx + 0x6e], ax
test edx, edx
je 0x49419a
lea eax, [edi + ecx*2]
add eax, ecx
imul eax, edx
lea ecx, [eax + eax*2]
mov eax, 0x51eb851f
imul ecx
mov ecx, dword [esp + 0x10]
sar edx, 5
mov eax, edx
shr eax, 0x1f
add eax, 0x14
add eax, edx
mov word [ebx + 0x62], ax
mov edx, dword [esp + 0xe0]
test edx, edx
je 0x4941c8
lea eax, [edi + ecx*2]
add eax, ecx
imul eax, edx
lea ecx, [eax + eax*2]
mov eax, 0x51eb851f
imul ecx
sar edx, 5
mov eax, edx
shr eax, 0x1f
add eax, 0x14
add eax, edx
mov word [ebx + 0x64], ax
mov edx, dword [esp + 0xe8]
test edx, edx
je 0x4941fb
mov eax, dword [esp + 0x20]
cwde
lea ecx, [edi + eax*2]
add ecx, eax
mov eax, 0x51eb851f
imul ecx, edx
lea ecx, [ecx + ecx*2]
imul ecx
sar edx, 5
mov eax, edx
shr eax, 0x1f
add eax, 0x14
add eax, edx
mov word [ebx + 0x6a], ax
movzx eax, word [ebx + 4]
cwde
sub eax, 0xa00
cmp eax, 0x200
jae 0x49422c
cmp dword [esp + 0x14], 1
jne 0x49422c
mov ecx, dword [esp + 0xe4]
test ecx, ecx
je 0x49425e
movsx eax, word [ebx + 6]
add eax, edi
imul eax, ecx
lea ecx, [eax + eax*2]
jmp 0x494246
mov edx, dword [esp + 0xe4]
test edx, edx
je 0x49425e
movsx eax, word [ebx + 6]
lea ecx, [edi + eax*2]
add ecx, eax
imul ecx, edx
shl ecx, 2
mov eax, 0x51eb851f
imul ecx
sar edx, 5
mov eax, edx
shr eax, 0x1f
add eax, 0x14
add eax, edx
mov word [ebx + 0x66], ax
mov eax, dword [esp + 0xec]
test eax, eax
je 0x494290
movsx ecx, word [ebx + 6]
lea edx, [edi + ecx*2]
add edx, ecx
imul edx, eax
mov eax, 0x51eb851f
lea ecx, [edx + edx*2]
imul ecx
sar edx, 5
mov eax, edx
shr eax, 0x1f
add eax, 0x14
add eax, edx
mov word [ebx + 0x6c], ax
movzx eax, word [ebx + 4]
mov ecx, 0x1a05
cmp ax, cx
jne 0x4942bb
mov ax, word [ebx + 0xc4]
mov cx, ax
shl cx, 4
sub cx, ax
mov eax, 0xb9
add cx, ax
mov word [ebx + 0x6c], cx
xor eax, eax
nop dword [eax]
cmp byte [ebx + eax + 0xd3], 0xff
jne 0x494350
inc eax
cmp eax, 5
jl 0x4942c0
mov al, byte [ebx + 0xcc]
mov byte [esp + 0xf], al
test al, 0xf0
je 0x494350
push ebx
call fcn.004aaa70
mov edi, eax
test edi, edi
je 0x494350
movzx edx, byte [esp + 0xf]
mov ecx, edx
shr ecx, 4
test ecx, ecx
je 0x494350
cmp edi, 3
ja 0x494350
shl eax, 4
add eax, ecx
imul eax, eax, 0xac
lea eax, [eax + 0x9ed104]
mov dword [esp + 0x10], eax
cmp dword [eax], ecx
jne 0x494350
test eax, eax
je 0x494350
movsx eax, word [ebx + 6]
and edx, 0xf
cmp edx, eax
jg 0x494350
cmp edi, 1
jne 0x49433d
cmp ecx, 3
jne 0x494350
mov eax, dword [esp + 0x10]
mov eax, dword [eax + edx*4 + 0x2c]
jmp 0x494352
cmp edi, 2
jne 0x494350
cmp ecx, edi
jne 0x494350
mov eax, dword [esp + 0x10]
mov eax, dword [eax + edx*4 + 0x2c]
jmp 0x494352
xor eax, eax
mov word [ebx + 0xce], ax
xor eax, eax
nop dword [eax + eax]
cmp byte [ebx + eax + 0xd3], 0xff
jne 0x4943f1
inc eax
cmp eax, 5
jl 0x494360
mov al, byte [ebx + 0xcc]
mov byte [esp + 0xf], al
test al, 0xf0
je 0x4943f1
push ebx
call fcn.004aaa70
mov edi, eax
test edi, edi
je 0x4943f1
movzx edx, byte [esp + 0xf]
mov ecx, edx
shr ecx, 4
test ecx, ecx
je 0x4943f1
cmp edi, 3
ja 0x4943f1
shl eax, 4
add eax, ecx
imul eax, eax, 0xac
lea eax, [eax + 0x9ed104]
mov dword [esp + 0x10], eax
cmp dword [eax], ecx
jne 0x4943f1
test eax, eax
je 0x4943f1
movsx eax, word [ebx + 6]
and edx, 0xf
cmp edx, eax
jg 0x4943f1
cmp edi, 1
jne 0x4943dd
cmp ecx, 4
jne 0x4943f1
mov eax, dword [esp + 0x10]
mov eax, dword [eax + edx*4 + 0x2c]
jmp 0x4943f3
cmp edi, 2
jne 0x4943f1
cmp ecx, 3
jne 0x4943f1
mov eax, dword [esp + 0x10]
mov eax, dword [eax + edx*4 + 0x2c]
jmp 0x4943f3
xor eax, eax
mov edi, dword [esp + 0xd8]
mov word [ebx + 0xd0], ax
test edi, edi
je 0x49451a
movzx ecx, word [ebx + 4]
mov eax, 0x17ff
mov edx, ecx
cmp cx, ax
jbe 0x494516
mov eax, 0x1803
cmp cx, ax
jl 0x494431
mov eax, 0x1806
cmp cx, ax
jle 0x49443b
mov eax, 0x182a
cmp cx, ax
jne 0x494455
mov ax, word [ebx + 6]
mov cx, ax
shl ax, 2
add cx, ax
add cx, di
mov word [ebx + 0x68], cx
jmp 0x49451a
lea eax, [edx - 0x1807]
cmp ax, 0x11
ja 0x49446f
mov eax, 0x180f
cmp cx, ax
jne 0x494516
lea eax, [edx - 0x182c]
cmp ax, 4
jbe 0x494516
mov eax, 0x1824
cmp cx, ax
jl 0x494497
mov eax, 0x1828
cmp cx, ax
jle 0x494516
mov eax, 0x182b
cmp cx, ax
je 0x494516
mov eax, 0x1832
cmp cx, ax
je 0x494516
lea eax, [edx - 0x1882]
cmp ax, 5
jbe 0x494516
lea eax, [edx - 0x1906]
cmp ax, 3
ja 0x4944d4
mov ax, word [ebx + 6]
shl ax, 2
add ax, di
mov word [ebx + 0x68], ax
jmp 0x49451a
lea eax, [edx - 0x190a]
cmp ax, 1
jbe 0x494516
movzx edx, word [ebx + 4]
xor ecx, ecx
movsx eax, dx
mov dword [esp + 0x14], eax
mov eax, 0x63d1e4
cmp ecx, 0x63
ja 0x494588
cmp dword [eax], ecx
jne 0x494588
mov esi, dword [esp + 0x14]
cmp dword [eax + 4], esi
mov esi, dword [esp + 0x84]
movzx edx, dx
jne 0x49458c
mov word [ebx + 0x68], di
movzx edx, word [ebx + 4]
mov eax, 0x1a0a
mov ecx, dword [esp + 0x18]
cmp dx, ax
jne 0x49453f
mov eax, 0x14
cmp ecx, 2
jle 0x49453b
mov eax, 0x32
mov word [ebx + 0x68], ax
cmp byte [esp + 0x1c], 0
mov edi, 0x1800
je 0x494560
movzx eax, word [ebx + 0x68]
test ax, ax
je 0x494560
cmp dx, di
jl 0x494560
add eax, 0x14
mov word [ebx + 0x68], ax
mov al, byte [ebx + 0xb6]
mov byte [esp + 0xf], al
test al, al
je 0x494575
lea ecx, [esi + 0x1e]
mov dword [esp + 0x18], ecx
mov eax, 0x406
xor edi, edi
cmp dx, ax
jne 0x4945c8
mov edi, 0xf
jmp 0x4945ee
movzx edx, word [ebx + 4]
add eax, 0x78
inc ecx
cmp eax, 0x6400c4
jge 0x4945a0
movzx edx, word [ebx + 4]
jmp 0x4944f2
movzx eax, dx
mov ecx, 0x1a04
cmp ax, cx
jne 0x4944c3
mov ax, word [ebx + 0xc4]
add ax, 0x6d
add ax, ax
mov word [ebx + 0x68], ax
jmp 0x49451a
mov eax, 0xa07
cmp dx, ax
jne 0x4945d9
mov edi, 0x19
jmp 0x4945ee
mov dword [esp + 0x14], 0x806
mov eax, 0x1e
cmp dx, word [esp + 0x14]
cmove edi, eax
movzx eax, word [ebx + 0x10]
test ax, ax
je 0x494695
cmp byte [esp + 0xf], 0
je 0x494637
test esi, esi
je 0x494637
movzx eax, word [ebx + 0xe]
imul eax, eax, 0x19
cdq
idiv esi
mov esi, eax
mov eax, 0x66666667
imul ecx
movzx eax, word [ebx + 0x10]
sar edx, 4
add eax, 0xa
mov ecx, edx
add eax, esi
mov esi, dword [esp + 0x84]
shr ecx, 0x1f
add ecx, edx
add eax, ecx
jmp 0x49465f
cmp byte [esp + 0x1c], 0
mov edx, eax
je 0x494662
test edi, edi
je 0x494648
add eax, edi
jmp 0x49465f
test esi, esi
je 0x494662
movzx eax, word [ebx + 0xe]
imul eax, eax, 0x19
cdq
idiv esi
movzx edx, word [ebx + 0x10]
add edx, 5
add eax, edx
movzx edx, ax
movzx ecx, word [ebx + 6]
lea eax, [edx + ecx*2]
add eax, ecx
mov word [ebx + 0x10], ax
movzx eax, ax
mov dword [esp + 0x14], eax
cmp cx, 0xa
jl 0x494695
movsx ecx, cx
lea eax, [ecx - 9]
add ecx, 0xfffffff8
imul eax, ecx
cdq
sub eax, edx
sar eax, 1
add eax, dword [esp + 0x14]
mov word [ebx + 0x10], ax
movzx ecx, word [ebx + 0xe]
test cx, cx
je 0x494728
cmp byte [ebx + 0xb6], 0
je 0x4946d7
test esi, esi
je 0x4946d7
mov eax, ecx
imul eax, eax, 0x19
cdq
idiv esi
mov esi, eax
mov eax, 0x66666667
imul dword [esp + 0x18]
movzx eax, word [ebx + 0xe]
sar edx, 4
add eax, esi
mov ecx, edx
shr ecx, 0x1f
add ecx, 0xa
add ecx, edx
jmp 0x4946f6
cmp byte [esp + 0x1c], 0
mov eax, ecx
je 0x4946fb
test edi, edi
je 0x4946e9
lea eax, [ecx + edi]
jmp 0x4946f8
test esi, esi
je 0x4946fb
imul eax, eax, 0x19
cdq
idiv esi
add eax, 5
add eax, ecx
movzx eax, ax
movzx ecx, word [ebx + 6]
lea eax, [eax + ecx*2]
add eax, ecx
mov word [ebx + 0xe], ax
movzx esi, ax
cmp cx, 0xa
jl 0x494728
movsx ecx, cx
lea eax, [ecx - 9]
add ecx, 0xfffffff8
imul eax, ecx
cdq
sub eax, edx
sar eax, 1
add eax, esi
mov word [ebx + 0xe], ax
movzx ecx, word [ebx + 0x1e]
mov esi, dword [esp + 0x84]
test cx, cx
je 0x4947c6
cmp byte [ebx + 0xb6], 0
je 0x494775
test esi, esi
je 0x494775
mov eax, ecx
add ecx, 5
imul eax, eax, 0x19
cdq
idiv esi
add eax, ecx
movzx ecx, ax
mov eax, 0x88888889
imul dword [esp + 0x18]
add edx, dword [esp + 0x18]
sar edx, 5
mov eax, edx
shr eax, 0x1f
add eax, 2
add eax, edx
jmp 0x494794
cmp byte [esp + 0x1c], 0
mov eax, ecx
je 0x494799
test edi, edi
je 0x494787
lea eax, [ecx + edi]
jmp 0x494796
test esi, esi
je 0x494799
imul eax, eax, 0x19
cdq
idiv esi
add eax, 5
add eax, ecx
movzx eax, ax
movzx ecx, word [ebx + 6]
lea eax, [eax + ecx*2]
add eax, ecx
movzx edi, ax
mov word [ebx + 0x1e], di
cmp cx, 0xa
jl 0x4947c6
movsx ecx, cx
lea eax, [ecx - 9]
add ecx, 0xfffffff8
imul eax, ecx
cdq
sub eax, edx
sar eax, 1
add eax, edi
mov word [ebx + 0x1e], ax
mov al, byte [ebx + 0x12]
mov byte [esp + 0xf], al
test al, al
je 0x494861
cmp byte [ebx + 0xb6], 0
je 0x494811
test esi, esi
je 0x494811
movzx eax, al
imul eax, eax, 0x19
cdq
idiv esi
lea ecx, [eax + 5]
mov eax, 0x66666667
imul dword [esp + 0x18]
add cl, byte [esp + 0xf]
sar edx, 4
mov eax, edx
shr eax, 0x1f
add eax, edx
add al, 5
add al, cl
mov dword [esp + 0x14], eax
mov ecx, eax
jmp 0x49482d
cmp byte [esp + 0x1c], 0
mov cl, al
je 0x49482d
test esi, esi
je 0x49482d
movzx eax, al
imul eax, eax, 0x19
cdq
idiv esi
add al, 5
add al, cl
mov cl, al
mov al, byte [ebx + 6]
mov dl, al
add al, al
add dl, al
movzx eax, word [ebx + 6]
add dl, cl
mov byte [esp + 0xf], dl
mov byte [ebx + 0x12], dl
cmp ax, 0xa
jl 0x494861
movsx ecx, ax
lea eax, [ecx - 9]
add ecx, 0xfffffff8
imul eax, ecx
cdq
sub eax, edx
sar eax, 1
add al, byte [esp + 0xf]
mov byte [ebx + 0x12], al
movzx eax, word [ebx + 4]
mov esi, 0x1a1e
mov edx, eax
mov edi, eax
mov ecx, edx
cmp ax, si
je 0x494883
mov ecx, 0x1831
cmp ax, cx
jne 0x49488f
movzx ecx, word [ebx + 4]
mov eax, 0xf
mov word [ebx + 0x14], ax
movzx eax, cx
movzx ecx, word [ebx + 0x14]
movzx esi, ax
mov eax, ecx
mov dword [esp + 0x14], esi
mov dword [esp + 0x10], eax
test cx, cx
je 0x494b56
mov al, byte [ebx + 0xb6]
mov byte [esp + 0xf], al
lea eax, [edi - 0xc00]
mov edi, 0x1ff
cmp ax, di
ja 0x4948fb
mov ax, word [ebx + 6]
add ax, cx
cmp byte [esp + 0xf], 0
movzx esi, ax
mov word [ebx + 0x14], si
je 0x494b56
mov ecx, dword [esp + 0x18]
test ecx, ecx
je 0x494b56
mov eax, esi
lea eax, [eax + eax*4]
shl eax, 2
cdq
idiv ecx
add eax, 2
jmp 0x494b50
cmp byte [esp + 0xf], 0
mov eax, edx
mov edi, dword [esp + 0x84]
je 0x494971
test edi, edi
je 0x494971
cmp dword [esp + 0x18], 0
movzx eax, si
je 0x494971
lea eax, [ecx + ecx*2]
shl eax, 2
cdq
idiv edi
mov esi, eax
mov eax, 0x66666667
imul edi
movzx eax, word [ebx + 0x14]
sar edx, 1
add esi, eax
mov ecx, edx
add edx, 4
shr ecx, 0x1f
add ecx, edx
add ecx, esi
movzx edi, cx
mov ecx, edi
lea eax, [ecx + ecx*2]
mov ecx, dword [esp + 0x18]
cdq
idiv ecx
mov esi, eax
mov eax, 0x88888889
imul ecx
lea eax, [edi + esi]
add edx, ecx
sar edx, 4
mov ecx, edx
add edx, 2
shr ecx, 0x1f
add ecx, edx
add eax, ecx
mov ecx, dword [esp + 0x14]
jmp 0x4949c3
cmp byte [esp + 0x1c], 0
movzx esi, ax
mov eax, dword [esp + 0x10]
mov dword [esp + 0x14], esi
movzx edx, si
movzx eax, ax
je 0x4949cd
mov eax, dword [esp + 0x10]
movzx edx, si
movzx eax, ax
test edi, edi
je 0x4949cd
mov eax, ecx
lea eax, [eax + eax*2]
shl eax, 2
cdq
idiv edi
mov esi, eax
mov eax, 0x66666667
imul edi
movzx eax, word [ebx + 0x14]
sar edx, 1
add eax, esi
mov ecx, edx
add edx, 4
shr ecx, 0x1f
add ecx, edx
add eax, ecx
mov ecx, dword [esp + 0x14]
mov word [ebx + 0x14], ax
movzx eax, ax
movzx edx, cx
movzx esi, ax
movzx eax, dx
mov edx, 0x1803
mov ecx, eax
cmp ax, dx
jl 0x4949ed
mov edx, 0x1806
cmp ax, dx
jle 0x494b29
mov edx, 0x182a
cmp ax, dx
je 0x494b29
mov edx, 0x1a04
cmp ax, dx
je 0x494b29
mov edx, 0x1824
cmp ax, dx
jl 0x494a21
mov edx, 0x1828
cmp ax, dx
jle 0x494b18
mov edx, 0x182b
cmp ax, dx
je 0x494b18
mov edx, 0x1832
cmp ax, dx
je 0x494b18
lea eax, [ecx - 0x1882]
cmp ax, 5
ja 0x494a62
movzx ecx, word [ebx + 6]
mov edx, ecx
lea eax, [ecx + ecx]
add ax, word [ebx + 0x14]
mov word [ebx + 0x14], ax
movzx esi, ax
jmp 0x494b39
lea eax, [ecx - 0x1906]
cmp ax, 3
ja 0x494a7e
movzx eax, word [ebx + 6]
lea ecx, [eax + eax*2]
add cx, word [ebx + 0x14]
jmp 0x494b30
lea eax, [ecx - 0x190a]
cmp ax, 1
ja 0x494a9a
movzx eax, word [ebx + 6]
lea ecx, [eax + eax*2]
add cx, word [ebx + 0x14]
jmp 0x494b30
movsx edx, word [ebx + 4]
xor ecx, ecx
mov eax, 0x63d1e4
cmp ecx, 0x63
ja 0x494ab3
cmp dword [eax], ecx
jne 0x494ab3
cmp dword [eax + 4], edx
je 0x494acb
add eax, 0x78
inc ecx
cmp eax, 0x6400c4
jl 0x494aa5
movzx eax, word [ebx + 6]
lea ecx, [eax + eax*2]
add cx, word [ebx + 0x14]
jmp 0x494b30
movsx edx, word [ebx + 4]
xor eax, eax
mov ecx, 0x63d1e4
cmp eax, 0x63
ja 0x494ae4
cmp dword [ecx], eax
jne 0x494ae4
cmp dword [ecx + 4], edx
je 0x494b09
add ecx, 0x78
inc eax
cmp ecx, 0x6400c4
jl 0x494ad6
movzx ecx, word [ebx + 6]
xor edx, edx
mov ax, word [ebx + 0x14]
add ax, dx
movzx edx, cx
mov word [ebx + 0x14], ax
movzx esi, ax
jmp 0x494b39
movzx eax, word [ebx + 6]
movsx edx, ax
imul edx, dword [ecx + 8]
mov ecx, eax
jmp 0x494af6
movzx eax, word [ebx + 6]
lea ecx, [eax*4]
add cx, word [ebx + 0x14]
jmp 0x494b30
movzx eax, word [ebx + 6]
lea ecx, [esi + eax*2]
mov word [ebx + 0x14], cx
mov edx, eax
movzx esi, cx
cmp dx, 0xa
jl 0x494b56
movsx ecx, dx
lea eax, [ecx - 9]
add ecx, 0xfffffff8
imul eax, ecx
cdq
sub eax, edx
sar eax, 1
add eax, esi
mov word [ebx + 0x14], ax
movzx eax, word [ebx + 0x16]
test ax, ax
je 0x494b8c
movzx ecx, word [ebx + 6]
lea eax, [eax + ecx*2]
add eax, ecx
movzx esi, ax
mov word [ebx + 0x16], si
cmp cx, 0xa
jl 0x494b8c
movsx ecx, cx
lea eax, [ecx - 9]
add ecx, 0xfffffff8
imul eax, ecx
cdq
sub eax, edx
sar eax, 1
add eax, esi
mov word [ebx + 0x16], ax
xorps xmm0, xmm0
movups xmmword [ebx + 0x2a], xmm0
push ebx
movq qword [ebx + 0x3a], xmm0
mov dword [ebx + 0x42], 0
movups xmmword [ebx + 0x46], xmm0
push 0
movq qword [ebx + 0x56], xmm0
mov dword [ebx + 0x5e], 0
mov byte [ebx + 0xb4], 0
call fcn.004a6d00
mov edx, 1
test al, al
jne 0x494bd5
mov byte [ebx + 0x9c], al
xor cl, cl
xor edx, edx
xor eax, eax
jmp 0x494c0e
mov al, byte [ebx + 0x9c]
test al, al
movzx ecx, al
cmove ecx, edx
mov byte [ebx + 0x9c], cl
mov ecx, dword [esp + 0x38]
test ecx, ecx
jne 0x494bf7
movzx eax, word [ebx + 0x2a]
jmp 0x494c01
xor edx, edx
mov eax, ecx
cmp ecx, 0x42
cmove eax, edx
movzx edx, word [ebx + 0x46]
cmp ecx, 0x42
movzx eax, ax
sete cl
mov word [ebx + 0x2a], ax
push ebx
mov word [ebx + 0x46], dx
push 1
mov byte [ebx + 0xb4], cl
call fcn.004a6d00
mov esi, 1
test al, al
jne 0x494c35
xor eax, eax
xor edx, edx
xor cl, cl
jmp 0x494c4b
mov al, byte [ebx + 0x9d]
movzx edx, word [ebx + 0x2c]
test al, al
movzx ecx, al
movzx eax, word [ebx + 0x48]
cmove ecx, esi
mov byte [ebx + 0x9d], cl
push ebx
mov word [ebx + 0x2c], dx
push 2
mov word [ebx + 0x48], ax
call fcn.004a6d00
test al, al
jne 0x494c7a
mov byte [ebx + 0x9e], al
xor eax, eax
mov word [ebx + 0x2e], ax
mov word [ebx + 0x4a], ax
jmp 0x494d0c
mov al, byte [ebx + 0x9e]
test al, al
movzx ecx, al
cmove ecx, esi
mov byte [ebx + 0x9e], cl
movzx eax, word [ebx + 0x4a]
movzx ecx, cl
mov edi, ecx
mov esi, ecx
mov edx, ecx
imul ecx, eax
mov word [ebx + 0x4a], cx
movzx ecx, word [ebx + 4]
movsx eax, cx
cmp eax, 0x1829
jg 0x494ccc
je case.0x494cbc.6146
sub eax, 0x1801
cmp eax, 5
ja case.default.0x494cbc
jmp dword [eax*4 + 0x495340]
lea eax, [esi*4]
jmp 0x494d08
sub eax, 0x182a
je case.0x494cbc.6146
sub eax, 7
je case.0x494cbc.6146
sub eax, 0x1ed
je case.0x494cbc.6146
mov eax, 0x1800
cmp cx, ax
jge 0x494cf9
lea eax, [edi*4]
movzx ecx, ax
add word [ebx + 0x62], cx
jmp 0x494d0c
xor ecx, ecx
add word [ebx + 0x62], cx
jmp 0x494d0c
lea eax, [edx*4]
add word [ebx + 0x62], ax
push ebx
push 3
call fcn.004a6d00
mov dword [esp + 0x10], 0x4c
mov edx, ebx
mov esi, 0x30
mov edi, ebx
test al, al
jne 0x494d2f
xor eax, eax
xor ecx, ecx
jmp 0x494d37
movzx eax, word [ebx + 0x4c]
movzx ecx, word [ebx + 0x30]
mov word [edx + esi], cx
mov ecx, dword [esp + 0x10]
push ebx
push 4
mov word [ecx + edi], ax
call fcn.004a6d00
mov dword [esp + 0x10], 0x4e
mov edx, ebx
mov esi, 0x32
mov edi, ebx
test al, al
jne 0x494d66
xor eax, eax
xor ecx, ecx
jmp 0x494d6e
movzx eax, word [ebx + 0x4e]
movzx ecx, word [ebx + 0x32]
mov word [edx + esi], cx
mov ecx, dword [esp + 0x10]
push ebx
push 5
mov word [ecx + edi], ax
call fcn.004a6d00
mov dword [esp + 0x10], 0x50
mov edx, ebx
mov esi, 0x34
mov edi, ebx
test al, al
jne 0x494d9d
xor eax, eax
xor ecx, ecx
jmp 0x494da5
movzx eax, word [ebx + 0x50]
movzx ecx, word [ebx + 0x34]
mov word [edx + esi], cx
mov ecx, dword [esp + 0x10]
push ebx
push 6
mov word [edi + ecx], ax
call fcn.004a6d00
mov dword [esp + 0x10], 0x52
mov edx, ebx
mov esi, 0x36
mov edi, ebx
test al, al
jne 0x494dd4
xor eax, eax
xor ecx, ecx
jmp 0x494ddc
movzx eax, word [ebx + 0x52]
movzx ecx, word [ebx + 0x36]
mov word [edx + esi], cx
mov ecx, dword [esp + 0x10]
push ebx
push 7
mov word [ecx + edi], ax
call fcn.004a6d00
mov dword [esp + 0x10], 0x54
mov edx, ebx
mov esi, 0x38
mov edi, ebx
test al, al
jne 0x494e0b
xor eax, eax
xor ecx, ecx
jmp 0x494e13
movzx eax, word [ebx + 0x54]
movzx ecx, word [ebx + 0x38]
mov word [esi + edx], cx
mov ecx, dword [esp + 0x10]
push ebx
push 8
mov word [ecx + edi], ax
call fcn.004a6d00
mov dword [esp + 0x10], 0x56
mov edx, ebx
mov esi, 0x3a
mov edi, ebx
test al, al
jne 0x494e42
xor eax, eax
xor ecx, ecx
jmp 0x494e4a
movzx eax, word [ebx + 0x56]
movzx ecx, word [ebx + 0x3a]
mov word [edx + esi], cx
mov ecx, dword [esp + 0x10]
push ebx
push 9
mov word [edi + ecx], ax
call fcn.004a6d00
mov dword [esp + 0x10], 0x58
mov edx, ebx
mov esi, 0x3c
mov edi, ebx
test al, al
jne 0x494e79
xor eax, eax
xor ecx, ecx
jmp 0x494e81
movzx eax, word [ebx + 0x58]
movzx ecx, word [ebx + 0x3c]
mov word [edx + esi], cx
mov ecx, dword [esp + 0x10]
push ebx
push 0xa
mov word [edi + ecx], ax
call fcn.004a6d00
mov dword [esp + 0x10], 0x5a
mov edx, ebx
mov esi, 0x3e
mov edi, ebx
test al, al
jne 0x494eb0
xor eax, eax
xor ecx, ecx
jmp 0x494eb8
movzx eax, word [ebx + 0x5a]
movzx ecx, word [ebx + 0x3e]
mov word [esi + edx], cx
mov ecx, dword [esp + 0x10]
push ebx
push 0xb
mov word [ecx + edi], ax
call fcn.004a6d00
mov dword [esp + 0x10], 0x5c
mov edx, ebx
mov esi, 0x40
mov edi, ebx
test al, al
jne 0x494ee7
xor eax, eax
xor ecx, ecx
jmp 0x494eef
movzx eax, word [ebx + 0x5c]
movzx ecx, word [ebx + 0x40]
mov word [esi + edx], cx
mov ecx, dword [esp + 0x10]
push ebx
push 0xc
mov word [edi + ecx], ax
call fcn.004a6d00
mov dword [esp + 0x10], 0x5e
mov edx, ebx
mov esi, 0x42
mov edi, ebx
test al, al
jne 0x494f1e
xor eax, eax
xor ecx, ecx
jmp 0x494f26
movzx eax, word [ebx + 0x5e]
movzx ecx, word [ebx + 0x42]
mov word [edx + esi], cx
mov ecx, dword [esp + 0x10]
push ebx
push 0xd
mov word [ecx + edi], ax
call fcn.004a6d00
test al, al
jne 0x494f44
xor eax, eax
xor ecx, ecx
jmp 0x494f4c
movzx eax, word [ebx + 0x60]
movzx ecx, word [ebx + 0x44]
mov word [ebx + 0x44], cx
xor ecx, ecx
mov word [ebx + 0x60], ax
mov eax, 0x63d1e4
nop dword [eax + eax]
cmp ecx, 0x63
ja 0x494f72
cmp dword [eax], ecx
jne 0x494f72
movsx esi, word [ebx + 4]
cmp dword [eax + 4], esi
je 0x494f82
add eax, 0x78
inc ecx
cmp eax, 0x6400c4
jl 0x494f60
jmp 0x49523f
mov al, byte [ebp + 0x10]
test al, al
je 0x494fa1
mov byte [ebx + 0x9d], al
mov eax, 0x54
mov word [ebx + 0x2c], ax
mov eax, 5
mov word [ebx + 0x48], ax
mov al, byte [ebp + 0x14]
test al, al
je 0x49509f
push 0
push esi
mov byte [ebx + 0x9e], al
call fcn.00464ba0
push 0
push esi
mov word [ebx + 0x2e], ax
call fcn.00464c00
mov word [ebx + 0x4a], ax
test byte [ebx + 0x9f], 0x10
je 0x495038
xor edx, edx
mov ecx, 0x63d1e4
nop word [eax + eax]
cmp edx, 0x63
ja 0x494ff6
cmp dword [ecx], edx
jne 0x494ff6
movsx eax, word [ebx + 4]
cmp dword [ecx + 4], eax
je 0x4952e0
add ecx, 0x78
inc edx
cmp ecx, 0x6400c4
jl 0x494fe0
xor eax, eax
mov word [ebx + 0x2e], ax
xor edx, edx
mov ecx, 0x63d1e4
nop
cmp edx, 0x63
ja 0x495026
cmp dword [ecx], edx
jne 0x495026
movsx eax, word [ebx + 4]
cmp dword [ecx + 4], eax
je 0x4952e8
add ecx, 0x78
inc edx
cmp ecx, 0x6400c4
jl 0x495010
xor eax, eax
mov word [ebx + 0x4a], ax
test byte [ebx + 0x9f], 0x20
je 0x49509f
xor edx, edx
mov ecx, 0x63d1e4
cmp edx, 0x63
ja 0x49505e
cmp dword [ecx], edx
jne 0x49505e
movsx eax, word [ebx + 4]
cmp dword [ecx + 4], eax
je 0x4952f0
add ecx, 0x78
inc edx
cmp ecx, 0x6400c4
jl 0x495048
xor eax, eax
mov word [ebx + 0x2e], ax
xor edx, edx
mov ecx, 0x63d1e4
cmp edx, 0x63
ja 0x49508d
cmp dword [ecx], edx
jne 0x49508d
movsx eax, word [ebx + 4]
cmp dword [ecx + 4], eax
je 0x4952f8
add ecx, 0x78
inc edx
cmp ecx, 0x6400c4
jl 0x495077
xor eax, eax
mov word [ebx + 0x4a], ax
test byte [ebx + 0x9f], 1
je 0x495108
xor edx, edx
mov ecx, 0x63d1e4
nop
cmp edx, 0x63
ja 0x4950c6
cmp dword [ecx], edx
jne 0x4950c6
movsx eax, word [ebx + 4]
cmp dword [ecx + 4], eax
je 0x495300
add ecx, 0x78
inc edx
cmp ecx, 0x6400c4
jl 0x4950b0
xor eax, eax
mov word [ebx + 0x30], ax
xor edx, edx
mov ecx, 0x63d1e4
nop
cmp edx, 0x63
ja 0x4950f6
cmp dword [ecx], edx
jne 0x4950f6
movsx eax, word [ebx + 4]
cmp dword [ecx + 4], eax
je 0x495308
add ecx, 0x78
inc edx
cmp ecx, 0x6400c4
jl 0x4950e0
xor eax, eax
mov word [ebx + 0x4c], ax
test byte [ebx + 0x9f], 2
je 0x49516f
xor edx, edx
mov ecx, 0x63d1e4
cmp edx, 0x63
ja 0x49512e
cmp dword [ecx], edx
jne 0x49512e
movsx eax, word [ebx + 4]
cmp dword [ecx + 4], eax
je 0x495310
add ecx, 0x78
inc edx
cmp ecx, 0x6400c4
jl 0x495118
xor eax, eax
mov word [ebx + 0x32], ax
xor edx, edx
mov ecx, 0x63d1e4
cmp edx, 0x63
ja 0x49515d
cmp dword [ecx], edx
jne 0x49515d
movsx eax, word [ebx + 4]
cmp dword [ecx + 4], eax
je 0x495318
add ecx, 0x78
inc edx
cmp ecx, 0x6400c4
jl 0x495147
xor eax, eax
mov word [ebx + 0x4e], ax
test byte [ebx + 0x9f], 4
je 0x4951d8
xor edx, edx
mov ecx, 0x63d1e4
nop
cmp edx, 0x63
ja 0x495196
cmp dword [ecx], edx
jne 0x495196
movsx eax, word [ebx + 4]
cmp dword [ecx + 4], eax
je 0x495320
add ecx, 0x78
inc edx
cmp ecx, 0x6400c4
jl 0x495180
xor eax, eax
mov word [ebx + 0x34], ax
xor edx, edx
mov ecx, 0x63d1e4
nop
cmp edx, 0x63
ja 0x4951c6
cmp dword [ecx], edx
jne 0x4951c6
movsx eax, word [ebx + 4]
cmp dword [ecx + 4], eax
je 0x495328
add ecx, 0x78
inc edx
cmp ecx, 0x6400c4
jl 0x4951b0
xor eax, eax
mov word [ebx + 0x50], ax
test byte [ebx + 0x9f], 8
je 0x49523f
xor edx, edx
mov ecx, 0x63d1e4
cmp edx, 0x63
ja 0x4951fe
cmp dword [ecx], edx
jne 0x4951fe
movsx eax, word [ebx + 4]
cmp dword [ecx + 4], eax
je 0x495330
add ecx, 0x78
inc edx
cmp ecx, 0x6400c4
jl 0x4951e8
xor eax, eax
mov word [ebx + 0x36], ax
xor edx, edx
mov ecx, 0x63d1e4
cmp edx, 0x63
ja 0x49522d
cmp dword [ecx], edx
jne 0x49522d
movsx eax, word [ebx + 4]
cmp dword [ecx + 4], eax
je 0x495338
add ecx, 0x78
inc edx
cmp ecx, 0x6400c4
jl 0x495217
xor eax, eax
mov word [ebx + 0x52], ax
mov ecx, ebx
call fcn.00495360
movzx eax, word [ebx + 4]
mov ecx, 0x807
cmp ax, cx
je 0x4952c9
mov ecx, 0x80f
cmp ax, cx
je 0x4952c9
movzx eax, word [ebx + 0xe]
movss xmm1, dword [ebx + 0xb0]
movzx ecx, word [ebx + 0x14]
mov word [ebx + 0x1a], ax
movd xmm0, eax
cvtdq2ps xmm0, xmm0
mov word [ebx + 0x1c], cx
mulss xmm0, xmm1
cvttss2si eax, xmm0
mov word [ebx + 0xe], ax
movzx eax, word [ebx + 0x10]
movd xmm0, eax
cvtdq2ps xmm0, xmm0
mulss xmm0, xmm1
cvttss2si eax, xmm0
movd xmm0, ecx
cvtdq2ps xmm0, xmm0
mov word [ebx + 0x10], ax
mulss xmm0, xmm1
cvttss2si eax, xmm0
mov word [ebx + 0x14], ax
movzx eax, byte [ebx + 0x12]
movd xmm0, eax
cvtdq2ps xmm0, xmm0
mulss xmm0, xmm1
cvttss2si eax, xmm0
mov byte [ebx + 0x12], al
mov ecx, dword [esp + 0x114]
pop edi
pop esi
pop ebx
xor ecx, esp
call fcn.00529f01
mov esp, ebp
pop ebp
ret 0x28
mov eax, dword [ecx + 0x24]
jmp 0x495004
mov eax, dword [ecx + 0x28]
jmp 0x495034
mov eax, dword [ecx + 0x2c]
jmp 0x49506c
mov eax, dword [ecx + 0x30]
jmp 0x49509b
mov eax, dword [ecx + 0x34]
jmp 0x4950d4
mov eax, dword [ecx + 0x38]
jmp 0x495104
mov eax, dword [ecx + 0x3c]
jmp 0x49513c
mov eax, dword [ecx + 0x40]
jmp 0x49516b
mov eax, dword [ecx + 0x44]
jmp 0x4951a4
mov eax, dword [ecx + 0x48]
jmp 0x4951d4
mov eax, dword [ecx + 0x4c]
jmp 0x49520c
mov eax, dword [ecx + 0x50]
jmp 0x49523b