Function at 0x495630
Capabilities:
Parse pe header

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x4d95ba
mov eax, dword fs:[0]
push eax
sub esp, 0x28
mov eax, dword [0x517b80]
xor eax, ebp
mov dword [ebp - 0x10], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov edi, ecx
mov esi, dword [ebp + 8]
mov ecx, dword [ebp + 0x10]
mov ebx, dword [ebp + 0xc]
mov dword [ebp - 0x2c], ecx
mov dword [ebp - 0x24], 0
cmp esi, 0xffffffff
jne 0x495796
mov esi, dword [ecx + 4]
lea eax, [ebp - 0x2c]
push eax
mov ecx, edi
mov dword [ebp - 0x24], esi
mov dword [ebp - 0x2c], 0
call fcn.0046fd80
mov dword [ebp - 0x28], eax
test eax, eax
je 0x495756
mov edx, dword [ebp - 0x2c]
test edx, edx
je 0x495756
mov esi, dword [esi + 4]
cmp edx, esi
jb 0x495756
mov ecx, dword [ebp - 0x24]
lea eax, [edx + 2]
mov ecx, dword [ecx + 0x10]
add ecx, esi
cmp eax, ecx
ja 0x495756
movzx ecx, word [edx]
mov eax, ecx
and eax, 0x7fff
cmp dword [edi + 0x2c], eax
jb 0x49572a
push ecx
push dword [ebp - 0x28]
lea eax, [ebp - 0x28]
push eax
call fcn.004683b0
add esp, 0xc
mov esi, dword [eax]
mov edi, 0x80000
mov dword [ebp - 4], 0
mov dword [ebp - 0x24], 0x80000
mov dword [ebp - 0x2c], esi
test esi, esi
je 0x495707
mov ecx, esi
call fcn.004a26e0
or edi, 0x40000
test edi, 0x80000
je 0x49575b
mov ecx, dword [ebp - 0x28]
mov dword [ebp - 4], 3
test ecx, ecx
je 0x49575b
call fcn.004a2a20
jmp 0x49575b
xor ecx, ecx
mov dword [ebp - 0x24], 0x100000
xor esi, esi
mov dword [ebp - 0x24], 0x140000
mov dword [ebp - 4], 1
mov dword [ebp - 0x2c], esi
mov dword [ebp - 0x24], 0x40000
mov dword [ebp - 4], 2
jmp 0x49575b
xor esi, esi
mov dword [ebp - 0x2c], esi
mov ecx, dword [ebx]
mov dword [ebp - 4], 4
test ecx, ecx
je 0x49576d
call fcn.004a2a20
mov dword [ebx], esi
test esi, esi
je 0x49577a
mov ecx, esi
call fcn.004a26e0
mov dword [ebp - 4], 5
test esi, esi
je 0x49578c
mov ecx, esi
call fcn.004a2a20
mov eax, 0x4e60d4
jmp 0x49662f
movzx eax, word [edi + 0xc]
cmp eax, 0x15
ja case.0x4957a3.2
jmp dword [eax*4 + 0x496d34]
cmp esi, 0xfffffffe
jne 0x495814
mov eax, dword [0x52d94c]
mov ecx, ebx
push dword [eax + 4]
call fcn.004a2300
mov ecx, dword [ebp - 0x2c]
lea eax, [ebp - 0x1c]
xorps xmm0, xmm0
mov dword [ebp - 0x14], 0
push eax
movq qword [ebp - 0x1c], xmm0
call fcn.00420640
mov dword [ebp - 4], 6
mov eax, dword [ebp - 0x14]
test eax, eax
je 0x495802
cmp word [eax], 8
jb 0x495802
cmp dword [eax + 6], 1
jne 0x495802
mov eax, dword [0x52d94c]
mov ecx, ebx
push dword [eax + 8]
call fcn.004a2300
lea ecx, [ebp - 0x1c]
call fcn.0043ff40
mov eax, 0x4eafdc
jmp 0x49662f
movzx eax, word [edi + 0x28]
lea edi, [edi + eax*4]
sub esi, 0
je 0x495939
sub esi, 1
je 0x495895
sub esi, 1
jne case.0x4957a3.2
lea eax, [ebp - 0x1c]
mov dword [ebp - 0x14], esi
xorps xmm0, xmm0
push eax
movq qword [ebp - 0x1c], xmm0
call fcn.00420640
mov eax, dword [ebp - 0x14]
mov dword [ebp - 4], 0xc
test eax, eax
je case.0x496345.3
cmp dword [edi + 0x38], 0x2000000
jne case.0x496345.3
cmp word [eax], 8
jb case.0x496345.3
push ebx
push dword [eax + 6]
call fcn.00496e30
add esp, 8
test al, al
je case.0x496345.3
lea ecx, [ebp - 0x1c]
call fcn.0043ff40
mov eax, 0x4eb9f0
jmp 0x49662f
lea eax, [ebp - 0x1c]
mov dword [ebp - 0x14], 0
xorps xmm0, xmm0
push eax
movq qword [ebp - 0x1c], xmm0
call fcn.00420640
mov eax, dword [ebp - 0x14]
mov dword [ebp - 4], 9
test eax, eax
je case.0x496345.3
cmp dword [edi + 0x38], 0x2000000
jne 0x495907
push dword [eax + 2]
lea eax, [ebp - 0x28]
push eax
call fcn.0046b360
add esp, 8
push eax
mov ecx, ebx
mov byte [ebp - 4], 0xa
call fcn.00419ad0
mov ecx, dword [ebp - 0x28]
mov byte [ebp - 4], 0xb
test ecx, ecx
je 0x4958f3
call fcn.004a2a20
lea ecx, [ebp - 0x1c]
mov esi, 0x4f75f4
call fcn.0043ff40
mov eax, esi
jmp 0x49662f
cmp word [eax], 8
jb case.0x496345.3
push ebx
push dword [eax + 6]
call fcn.00496e30
add esp, 8
test al, al
je case.0x496345.3
lea ecx, [ebp - 0x1c]
mov esi, 0x4eb9f0
call fcn.0043ff40
mov eax, esi
jmp 0x49662f
mov eax, dword [edi + 0x38]
test eax, eax
je case.0x4957a3.2
push eax
lea eax, [ebp - 0x28]
push eax
call fcn.0046b360
add esp, 8
push eax
mov ecx, ebx
mov dword [ebp - 4], 7
call fcn.00419ad0
mov dword [ebp - 4], 8
jmp 0x495ae0
cmp esi, 0xfffffffe
jne 0x4959a7
mov eax, dword [0x52d94c]
mov ecx, ebx
push dword [eax + 4]
call fcn.004a2300
mov ecx, dword [ebp - 0x2c]
lea eax, [ebp - 0x1c]
xorps xmm0, xmm0
mov dword [ebp - 0x14], 0
push eax
movq qword [ebp - 0x1c], xmm0
call fcn.00420640
mov dword [ebp - 4], 0xd
jmp 0x4957e0
movzx eax, word [edi + 0x28]
lea edi, [edi + eax*4]
sub esi, 0
je 0x495ab2
sub esi, 1
je 0x495a20
sub esi, 1
jne case.0x4957a3.2
lea eax, [ebp - 0x1c]
mov dword [ebp - 0x14], esi
xorps xmm0, xmm0
push eax
movq qword [ebp - 0x1c], xmm0
call fcn.00420640
mov eax, dword [ebp - 0x14]
mov dword [ebp - 4], 0x13
test eax, eax
je case.0x496345.3
cmp dword [edi + 0x38], 0x2000000
jne case.0x496345.3
cmp word [eax], 8
jb case.0x496345.3
push ebx
push dword [eax + 6]
call fcn.00496e30
add esp, 8
lea ecx, [ebp - 0x1c]
call fcn.0043ff40
mov eax, 0x4eb9f0
jmp 0x49662f
lea eax, [ebp - 0x1c]
mov dword [ebp - 0x14], 0
xorps xmm0, xmm0
push eax
movq qword [ebp - 0x1c], xmm0
call fcn.00420640
mov eax, dword [ebp - 0x14]
mov dword [ebp - 4], 0x10
test eax, eax
je case.0x496345.3
cmp dword [edi + 0x38], 0x2000000
jne 0x495a92
push dword [eax + 2]
lea eax, [ebp - 0x28]
push eax
call fcn.0046b360
add esp, 8
push eax
mov ecx, ebx
mov byte [ebp - 4], 0x11
call fcn.00419ad0
mov ecx, dword [ebp - 0x28]
mov byte [ebp - 4], 0x12
test ecx, ecx
je 0x495a7e
call fcn.004a2a20
lea ecx, [ebp - 0x1c]
mov esi, 0x4f75f4
call fcn.0043ff40
mov eax, esi
jmp 0x49662f
push ebx
push dword [eax + 6]
call fcn.00496e30
add esp, 8
lea ecx, [ebp - 0x1c]
mov esi, 0x4eb9f0
call fcn.0043ff40
mov eax, esi
jmp 0x49662f
mov eax, dword [edi + 0x38]
test eax, eax
je case.0x4957a3.2
push eax
lea eax, [ebp - 0x28]
push eax
call fcn.0046b360
add esp, 8
push eax
mov ecx, ebx
mov dword [ebp - 4], 0xe
call fcn.00419ad0
mov dword [ebp - 4], 0xf
mov ecx, dword [ebp - 0x28]
test ecx, ecx
je 0x495aec
call fcn.004a2a20
mov eax, 0x4eb9d0
jmp 0x49662f
movzx eax, word [edi + 0x28]
add eax, 0xd
lea eax, [edi + eax*4]
mov dword [ebp - 0x28], eax
test esi, esi
jne case.0x4957a3.2
mov ecx, edi
call fcn.00496dd0
mov ecx, dword [ebp - 0x28]
movzx edx, word [ecx + 2]
mov ecx, edx
and ecx, 0x7fff
cmp dword [edi + 0x2c], ecx
jb 0x495b4f
push edx
push eax
lea eax, [ebp - 0x2c]
push eax
call fcn.004683b0
add esp, 0xc
push eax
mov ecx, ebx
mov dword [ebp - 4], 0x14
mov dword [ebp - 0x24], 1
call fcn.00419ad0
lea ebx, [esi + 1]
jmp 0x495b76
xor esi, esi
mov dword [ebp - 0x28], esi
lea eax, [ebp - 0x28]
mov dword [ebp - 4], 0x15
push eax
mov ecx, ebx
mov dword [ebp - 0x24], 2
call fcn.00419ad0
xor ebx, ebx
mov dword [ebp - 4], 0x16
mov dword [ebp - 4], 0xffffffff
test bl, 1
je 0x495b95
mov ecx, dword [ebp - 0x2c]
mov dword [ebp - 4], 0x17
test ecx, ecx
je 0x495b95
call fcn.004a2a20
mov eax, 0x4f7614
jmp 0x49662f
movzx eax, word [edi + 0x28]
add eax, 0xd
lea eax, [edi + eax*4]
mov dword [ebp - 0x28], eax
sub esi, 0
je 0x495bd0
sub esi, 1
jne case.0x4957a3.2
push ebx
push dword [eax + 4]
call fcn.00497270
add esp, 8
mov eax, 0x4e53a4
jmp 0x49662f
mov ecx, edi
call fcn.00496dd0
mov ecx, dword [ebp - 0x28]
movzx edx, word [ecx + 2]
mov ecx, edx
and ecx, 0x7fff
cmp dword [edi + 0x2c], ecx
jb 0x495c16
push edx
push eax
lea eax, [ebp - 0x2c]
push eax
call fcn.004683b0
add esp, 0xc
push eax
mov ecx, ebx
mov dword [ebp - 4], 0x18
mov dword [ebp - 0x24], 4
call fcn.00419ad0
mov ebx, 4
jmp 0x495c3d
xor esi, esi
mov dword [ebp - 0x28], esi
lea eax, [ebp - 0x28]
mov dword [ebp - 4], 0x19
push eax
mov ecx, ebx
mov dword [ebp - 0x24], 8
call fcn.00419ad0
xor ebx, ebx
mov dword [ebp - 4], 0x1a
mov dword [ebp - 4], 0xffffffff
test bl, 4
je 0x495e29
mov ecx, dword [ebp - 0x2c]
mov dword [ebp - 4], 0x1b
jmp 0x495e20
movzx eax, word [edi + 0x28]
add eax, 0xd
lea eax, [edi + eax*4]
mov dword [ebp - 0x20], eax
sub esi, 0
je 0x495d9d
sub esi, 1
jne case.0x4957a3.2
mov ecx, dword [eax + 4]
mov eax, ecx
sub eax, 1
je 0x495d87
sub eax, 1
je 0x495d71
sub eax, 2
je 0x495d5b
push esi
push ecx
lea eax, [ebp - 0x20]
push eax
call fcn.00469740
push eax
lea eax, [ebp - 0x24]
mov dword [ebp - 4], 0x20
push 0x4f75d8
push eax
call fcn.004a23a0
mov esi, eax
push 0x4f75f0
mov byte [ebp - 4], 0x21
call fcn.004a27e0
push eax
push 0x4f75f0
call fcn.004a29e0
add esp, 0x24
mov dword [ebp - 0x2c], eax
lea eax, [ebp - 0x2c]
mov byte [ebp - 4], 0x22
push eax
lea eax, [ebp - 0x28]
mov ecx, esi
push eax
call fcn.004a24b0
mov esi, eax
mov ecx, dword [ebx]
mov byte [ebp - 4], 0x23
test ecx, ecx
je 0x495d01
call fcn.004a2a20
mov ecx, dword [esi]
mov dword [ebx], ecx
test ecx, ecx
je 0x495d0e
call fcn.004a26e0
mov ecx, dword [ebp - 0x28]
mov byte [ebp - 4], 0x24
test ecx, ecx
je 0x495d1e
call fcn.004a2a20
mov ecx, dword [ebp - 0x2c]
mov byte [ebp - 4], 0x25
test ecx, ecx
je 0x495d2e
call fcn.004a2a20
mov ecx, dword [ebp - 0x24]
mov byte [ebp - 4], 0x26
test ecx, ecx
je 0x495d3e
call fcn.004a2a20
mov ecx, dword [ebp - 0x20]
mov dword [ebp - 4], 0x27
test ecx, ecx
je 0x495d93
call fcn.004a2a20
mov eax, 0x4f763c
jmp 0x49662f
push 0x4f75b0
mov ecx, ebx
call fcn.004a2300
mov eax, 0x4f763c
jmp 0x49662f
push 0x4f758c
mov ecx, ebx
call fcn.004a2300
mov eax, 0x4f763c
jmp 0x49662f
push 0x4f7564
mov ecx, ebx
call fcn.004a2300
mov eax, 0x4f763c
jmp 0x49662f
mov ecx, edi
call fcn.00496dd0
mov ecx, dword [ebp - 0x20]
movzx edx, word [ecx + 2]
mov ecx, edx
and ecx, 0x7fff
cmp dword [edi + 0x2c], ecx
jb 0x495de3
push edx
push eax
lea eax, [ebp - 0x28]
push eax
call fcn.004683b0
add esp, 0xc
push eax
mov ecx, ebx
mov dword [ebp - 4], 0x1c
mov dword [ebp - 0x24], 0x10
call fcn.00419ad0
mov ebx, 0x10
jmp 0x495e0a
xor esi, esi
mov dword [ebp - 0x20], esi
lea eax, [ebp - 0x20]
mov dword [ebp - 4], 0x1d
push eax
mov ecx, ebx
mov dword [ebp - 0x24], 0x20
call fcn.00419ad0
xor ebx, ebx
mov dword [ebp - 4], 0x1e
mov dword [ebp - 4], 0xffffffff
test bl, 0x10
je 0x495e29
mov ecx, dword [ebp - 0x28]
mov dword [ebp - 4], 0x1f
test ecx, ecx
je 0x495e29
call fcn.004a2a20
mov eax, 0x4f7628
jmp 0x49662f
movzx eax, word [edi + 0x28]
add eax, 0xd
lea eax, [edi + eax*4]
mov dword [ebp - 0x2c], eax
sub esi, 0
je 0x495ef3
sub esi, 1
jne case.0x4957a3.2
mov ecx, edi
call fcn.00496dd0
mov edx, eax
mov eax, dword [ebp - 0x2c]
movzx ecx, word [eax + 2]
movzx eax, word [eax + 4]
add edx, ecx
mov ecx, eax
and ecx, 0x7fff
cmp dword [edi + 0x2c], ecx
jb 0x495ea0
push eax
push edx
lea eax, [ebp - 0x28]
push eax
call fcn.004683b0
add esp, 0xc
push eax
mov ecx, ebx
mov dword [ebp - 4], 0x2c
mov dword [ebp - 0x24], 0x100
call fcn.00419ad0
mov edi, 0x100
jmp 0x495ec7
xor esi, esi
mov dword [ebp - 0x20], esi
lea eax, [ebp - 0x20]
mov dword [ebp - 4], 0x2d
push eax
mov ecx, ebx
mov dword [ebp - 0x24], 0x200
call fcn.00419ad0
xor edi, edi
mov dword [ebp - 4], 0x2e
mov dword [ebp - 4], 0xffffffff
test edi, 0x100
je 0x495ee9
mov ecx, dword [ebp - 0x28]
mov dword [ebp - 4], 0x2f
test ecx, ecx
je 0x495ee9
call fcn.004a2a20
mov eax, 0x4f7668
jmp 0x49662f
mov ecx, edi
call fcn.00496dd0
mov ecx, dword [ebp - 0x2c]
movzx edx, word [ecx + 2]
mov ecx, edx
and ecx, 0x7fff
cmp dword [edi + 0x2c], ecx
jb 0x495f39
push edx
push eax
lea eax, [ebp - 0x28]
push eax
call fcn.004683b0
add esp, 0xc
push eax
mov ecx, ebx
mov dword [ebp - 4], 0x28
mov dword [ebp - 0x24], 0x40
call fcn.00419ad0
mov ebx, 0x40
jmp 0x495f60
xor esi, esi
mov dword [ebp - 0x20], esi
lea eax, [ebp - 0x20]
mov dword [ebp - 4], 0x29
push eax
mov ecx, ebx
mov dword [ebp - 0x24], 0x80
call fcn.00419ad0
xor ebx, ebx
mov dword [ebp - 4], 0x2a
mov dword [ebp - 4], 0xffffffff
test bl, 0x40
je 0x495f7f
mov ecx, dword [ebp - 0x28]
mov dword [ebp - 4], 0x2b
test ecx, ecx
je 0x495f7f
call fcn.004a2a20
mov eax, 0x4f764c
jmp 0x49662f
cmp esi, 0xfffffffe
je 0x496cd4
movzx eax, word [edi + 0x28]
add eax, 0xd
lea eax, [edi + eax*4]
mov dword [ebp - 0x20], eax
test esi, esi
jne case.0x4957a3.2
mov ecx, edi
call fcn.00496dd0
mov ecx, dword [ebp - 0x20]
movzx edx, word [ecx + 2]
mov ecx, edx
and ecx, 0x7fff
cmp dword [edi + 0x2c], ecx
jb 0x495fed
push edx
push eax
lea eax, [ebp - 0x28]
push eax
call fcn.004683b0
add esp, 0xc
push eax
mov ecx, ebx
mov dword [ebp - 4], 0x30
mov dword [ebp - 0x24], 0x400
call fcn.00419ad0
mov edi, 0x400
jmp 0x496014
xor esi, esi
mov dword [ebp - 0x20], esi
lea eax, [ebp - 0x20]
mov dword [ebp - 4], 0x31
push eax
mov ecx, ebx
mov dword [ebp - 0x24], 0x800
call fcn.00419ad0
xor edi, edi
mov dword [ebp - 4], 0x32
mov dword [ebp - 4], 0xffffffff
test edi, 0x400
je 0x496036
mov ecx, dword [ebp - 0x28]
mov dword [ebp - 4], 0x33
test ecx, ecx
je 0x496036
call fcn.004a2a20
mov eax, 0x4f7684
jmp 0x49662f
cmp esi, 0xfffffffe
je 0x496cb2
lea eax, [ebp - 0x1c]
mov dword [ebp - 0x14], 0
xorps xmm0, xmm0
push eax
movq qword [ebp - 0x1c], xmm0
call fcn.00420640
cmp word [edi + 0xc], 3
movzx eax, word [edi + 0x28]
mov dword [ebp - 4], 0x34
lea eax, [eax*4 + 0x34]
mov dword [ebp - 0x20], eax
jne 0x49629f
mov ecx, dword [ebp - 0x2c]
add eax, edi
push 0xc
push eax
mov ecx, dword [ecx + 4]
call fcn.00496e00
test al, al
jne 0x4960b5
push 0x4e454c
mov ecx, ebx
call fcn.004a2300
lea ecx, [ebp - 0x1c]
mov esi, 0x4f7698
call fcn.0043ff40
mov eax, esi
jmp 0x49662f
mov edx, dword [ebp - 0x20]
mov ecx, dword [edx + edi + 8]
test esi, esi
jne 0x496267
cmp ecx, 7
ja case.0x4960cd.6
jmp dword [ecx*4 + 0x496d8c]
push 0x4f76a4
mov ecx, ebx
call fcn.004a2300
lea ecx, [ebp - 0x1c]
mov esi, 0x4f7698
call fcn.0043ff40
mov eax, esi
jmp 0x49662f
push 0x4f76b0
mov ecx, ebx
call fcn.004a2300
lea ecx, [ebp - 0x1c]
mov esi, 0x4f7698
call fcn.0043ff40
mov eax, esi
jmp 0x49662f
push 0x4f76bc
mov ecx, ebx
call fcn.004a2300
lea ecx, [ebp - 0x1c]
mov esi, 0x4f7698
call fcn.0043ff40
mov eax, esi
jmp 0x49662f
push 0x4e42f8
mov ecx, ebx
call fcn.004a2300
lea ecx, [ebp - 0x1c]
mov esi, 0x4f7698
call fcn.0043ff40
mov eax, esi
jmp 0x49662f
push 0x4f76c8
mov ecx, ebx
call fcn.004a2300
lea ecx, [ebp - 0x1c]
mov esi, 0x4f7698
call fcn.0043ff40
mov eax, esi
jmp 0x49662f
push 0x4e53a4
mov ecx, ebx
call fcn.004a2300
lea ecx, [ebp - 0x1c]
mov esi, 0x4f7698
call fcn.0043ff40
mov eax, esi
jmp 0x49662f
push 0x4f76d8
mov ecx, ebx
call fcn.004a2300
lea ecx, [ebp - 0x1c]
mov esi, 0x4f7698
call fcn.0043ff40
mov eax, esi
jmp 0x49662f
push 0
push ecx
lea eax, [ebp - 0x24]
push eax
call fcn.00469740
push eax
lea eax, [ebp - 0x28]
mov byte [ebp - 4], 0x35
push 0x4f75d8
push eax
call fcn.004a23a0
mov esi, eax
push 0x4eb8bc
mov byte [ebp - 4], 0x36
call fcn.004a27e0
push eax
push 0x4eb8bc
call fcn.004a29e0
add esp, 0x24
mov dword [ebp - 0x2c], eax
lea eax, [ebp - 0x2c]
mov byte [ebp - 4], 0x37
push eax
lea eax, [ebp - 0x20]
mov ecx, esi
push eax
call fcn.004a24b0
push eax
mov ecx, ebx
mov byte [ebp - 4], 0x38
call fcn.00419ad0
mov ecx, dword [ebp - 0x20]
mov byte [ebp - 4], 0x39
test ecx, ecx
je 0x496223
call fcn.004a2a20
mov ecx, dword [ebp - 0x2c]
mov byte [ebp - 4], 0x3a
test ecx, ecx
je 0x496233
call fcn.004a2a20
mov ecx, dword [ebp - 0x28]
mov byte [ebp - 4], 0x3b
test ecx, ecx
je 0x496243
call fcn.004a2a20
mov ecx, dword [ebp - 0x24]
mov byte [ebp - 4], 0x3c
test ecx, ecx
je 0x496253
call fcn.004a2a20
lea ecx, [ebp - 0x1c]
mov esi, 0x4f7698
call fcn.0043ff40
mov eax, esi
jmp 0x49662f
mov eax, dword [ebp - 0x14]
dec esi
test eax, eax
jne 0x49633c
test esi, esi
jne case.0x496345.3
push esi
push esi
push dword [edx + edi + 4]
lea eax, [ebp - 0x20]
push eax
call fcn.0046ab10
add esp, 0x10
push eax
mov ecx, ebx
mov byte [ebp - 4], 0x3d
call fcn.00419ad0
mov byte [ebp - 4], 0x3e
jmp 0x49631c
mov ecx, dword [eax + edi + 0xc]
lea edx, [eax + edi]
test esi, esi
jne 0x4962eb
push esi
push esi
push dword [edx + 8]
lea eax, [ebp - 0x20]
push eax
call fcn.0046ab10
add esp, 0x10
push eax
mov ecx, ebx
mov byte [ebp - 4], 0x3f
call fcn.00419ad0
mov ecx, dword [ebp - 0x20]
mov byte [ebp - 4], 0x40
test ecx, ecx
je 0x4962d7
call fcn.004a2a20
lea ecx, [ebp - 0x1c]
mov esi, 0x4f76f0
call fcn.0043ff40
mov eax, esi
jmp 0x49662f
mov eax, dword [ebp - 0x14]
dec esi
test eax, eax
jne 0x49633c
test esi, esi
jne case.0x496345.3
push esi
push esi
push dword [edx + 4]
lea eax, [ebp - 0x20]
push eax
call fcn.0046ab10
add esp, 0x10
push eax
mov ecx, ebx
mov byte [ebp - 4], 0x41
call fcn.00419ad0
mov byte [ebp - 4], 0x42
mov ecx, dword [ebp - 0x20]
test ecx, ecx
je 0x496328
call fcn.004a2a20
lea ecx, [ebp - 0x1c]
mov esi, 0x4e6328
call fcn.0043ff40
mov eax, esi
jmp 0x49662f
cmp ecx, 7
ja case.0x496345.3
jmp dword [ecx*4 + 0x496dac]
test eax, eax
je 0x496355
lea edx, [eax + 2]
jmp 0x496357
xor edx, edx
test esi, esi
jne case.0x496345.3
mov ecx, dword [edx + 0xc]
shr ecx, 1
mov eax, ecx
and eax, 0x7fff
cmp dword [edi + 0x2c], eax
jb 0x49639e
push ecx
lea eax, [edx + 0x10]
push eax
lea eax, [ebp - 0x28]
push eax
lfence
call fcn.004683b0
add esp, 0xc
push eax
mov ecx, ebx
mov byte [ebp - 4], 0x43
mov dword [ebp - 0x24], 0x1000
call fcn.00419ad0
mov edi, 0x1000
jmp 0x4963c5
xor esi, esi
mov dword [ebp - 0x20], esi
lea eax, [ebp - 0x20]
mov dword [ebp - 4], 0x44
push eax
mov ecx, ebx
mov dword [ebp - 0x24], 0x2000
call fcn.00419ad0
xor edi, edi
mov dword [ebp - 4], 0x45
mov dword [ebp - 4], 0x34
test edi, 0x1000
je 0x496479
mov byte [ebp - 4], 0x46
jmp 0x49646d
test eax, eax
je 0x4963ea
lea edx, [eax + 2]
jmp 0x4963ec
xor edx, edx
test esi, esi
jne case.0x496345.3
mov ecx, dword [edx + 0x14]
shr ecx, 1
mov eax, ecx
and eax, 0x7fff
cmp dword [edi + 0x2c], eax
jb 0x496433
push ecx
lea eax, [edx + 0x18]
push eax
lea eax, [ebp - 0x28]
push eax
lfence
call fcn.004683b0
add esp, 0xc
push eax
mov ecx, ebx
mov byte [ebp - 4], 0x47
mov dword [ebp - 0x24], 0x4000
call fcn.00419ad0
mov edi, 0x4000
jmp 0x49645a
xor esi, esi
mov dword [ebp - 0x20], esi
lea eax, [ebp - 0x20]
mov dword [ebp - 4], 0x48
push eax
mov ecx, ebx
mov dword [ebp - 0x24], 0x8000
call fcn.00419ad0
xor edi, edi
mov dword [ebp - 4], 0x49
mov dword [ebp - 4], 0x34
test edi, 0x4000
je 0x496479
mov byte [ebp - 4], 0x4a
mov ecx, dword [ebp - 0x28]
test ecx, ecx
je 0x496479
call fcn.004a2a20
lea ecx, [ebp - 0x1c]
mov esi, 0x4e42f8
call fcn.0043ff40
mov eax, esi
jmp 0x49662f
test eax, eax
je 0x496496
add eax, 2
jmp 0x496498
xor eax, eax
test esi, esi
jne case.0x496345.3
push esi
push dword [eax]
lea eax, [ebp - 0x20]
push eax
call fcn.004696e0
add esp, 0xc
push eax
mov ecx, ebx
mov byte [ebp - 4], 0x4b
call fcn.00419ad0
mov ecx, dword [ebp - 0x20]
mov byte [ebp - 4], 0x4c
test ecx, ecx
je 0x4964cb
call fcn.004a2a20
lea ecx, [ebp - 0x1c]
mov esi, 0x4f76fc
call fcn.0043ff40
mov eax, esi
jmp 0x49662f
test eax, eax
je 0x4964e8
add eax, 2
jmp 0x4964ea
xor eax, eax
sub esi, 0
je 0x49651b
sub esi, 1
jne case.0x496345.3
push esi
push esi
push dword [eax + 0x14]
lea eax, [ebp - 0x20]
push eax
call fcn.0046ab10
add esp, 0x10
push eax
mov ecx, ebx
mov byte [ebp - 4], 0x4f
call fcn.00419ad0
mov byte [ebp - 4], 0x50
jmp 0x49657a
push 0
push 0
push dword [eax + 0xc]
lea eax, [ebp - 0x20]
push eax
call fcn.0046ab10
add esp, 0x10
push eax
mov ecx, ebx
mov byte [ebp - 4], 0x4d
call fcn.00419ad0
mov byte [ebp - 4], 0x4e
jmp 0x4965bd
test eax, eax
je 0x496549
add eax, 2
jmp 0x49654b
xor eax, eax
sub esi, 0
je 0x49659a
sub esi, 1
jne case.0x496345.3
push esi
push esi
push dword [eax + 0x20]
lea eax, [ebp - 0x20]
push eax
call fcn.0046ab10
add esp, 0x10
push eax
mov ecx, ebx
mov byte [ebp - 4], 0x53
call fcn.00419ad0
mov byte [ebp - 4], 0x54
mov ecx, dword [ebp - 0x20]
test ecx, ecx
je 0x496586
call fcn.004a2a20
lea ecx, [ebp - 0x1c]
mov esi, 0x4f7720
call fcn.0043ff40
mov eax, esi
jmp 0x49662f
push 0
push 0
push dword [eax + 0x14]
lea eax, [ebp - 0x20]
push eax
call fcn.0046ab10
add esp, 0x10
push eax
mov ecx, ebx
mov byte [ebp - 4], 0x51
call fcn.00419ad0
mov byte [ebp - 4], 0x52
mov ecx, dword [ebp - 0x20]
test ecx, ecx
je 0x4965c9
call fcn.004a2a20
lea ecx, [ebp - 0x1c]
mov esi, 0x4f7710
call fcn.0043ff40
mov eax, esi
jmp 0x49662f
test eax, eax
je 0x4965e3
add eax, 2
jmp 0x4965e5
xor eax, eax
test esi, esi
jne case.0x496345.3
push esi
push dword [eax]
lea eax, [ebp - 0x20]
push eax
call fcn.004696e0
add esp, 0xc
push eax
mov ecx, ebx
mov byte [ebp - 4], 0x55
call fcn.00419ad0
mov ecx, dword [ebp - 0x20]
mov byte [ebp - 4], 0x56
test ecx, ecx
je 0x496614
call fcn.004a2a20
lea ecx, [ebp - 0x1c]
mov esi, 0x4f76d8
call fcn.0043ff40
mov eax, esi
jmp 0x49662f
lea ecx, [ebp - 0x1c]
call fcn.0043ff40
xor eax, eax
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.004a71aa
mov esp, ebp
pop ebp
ret 0xc
cmp esi, 0xfffffffe
je 0x496cb2
lea eax, [ebp - 0x1c]
mov dword [ebp - 0x14], 0
xorps xmm0, xmm0
push eax
movq qword [ebp - 0x1c], xmm0
call fcn.00420640
cmp word [edi + 0xc], 5
movzx eax, word [edi + 0x28]
mov dword [ebp - 4], 0x57
lea edx, [edi + eax*4]
jne 0x4966bc
mov ecx, dword [ebp - 0x14]
mov eax, dword [edi + eax*4 + 0x3c]
test ecx, ecx
jne 0x4967e6
test esi, esi
jne case.0x496345.3
push esi
push esi
push dword [edx + 0x38]
lea eax, [ebp - 0x20]
push eax
call fcn.0046ab10
add esp, 0x10
push eax
mov ecx, ebx
mov byte [ebp - 4], 0x58
call fcn.00419ad0
mov byte [ebp - 4], 0x59
jmp 0x496899
mov eax, dword [edi + eax*4 + 0x40]
test esi, esi
jne 0x496705
push esi
push esi
push dword [edx + 0x3c]
lea eax, [ebp - 0x20]
push eax
call fcn.0046ab10
add esp, 0x10
push eax
mov ecx, ebx
mov byte [ebp - 4], 0x5a
call fcn.00419ad0
mov ecx, dword [ebp - 0x20]
mov byte [ebp - 4], 0x5b
test ecx, ecx
je 0x4966f1
call fcn.004a2a20
lea ecx, [ebp - 0x1c]
mov esi, 0x4f76f0
call fcn.0043ff40
mov eax, esi
jmp 0x49662f
mov ecx, dword [ebp - 0x14]
dec esi
test ecx, ecx
jne 0x49673b
test esi, esi
jne case.0x496345.3
push esi
push esi
push dword [edx + 0x38]
lea eax, [ebp - 0x20]
push eax
call fcn.0046ab10
add esp, 0x10
push eax
mov ecx, ebx
mov byte [ebp - 4], 0x5c
call fcn.00419ad0
mov byte [ebp - 4], 0x5d
jmp 0x496899
cmp eax, 1
jne 0x4967e6
test esi, esi
jne 0x4967e5
mov edx, dword [ecx + 0x12]
shr edx, 1
mov eax, edx
and eax, 0x7fff
cmp dword [edi + 0x2c], eax
jb 0x49678b
push edx
lea eax, [ecx + 0x16]
push eax
lea eax, [ebp - 0x28]
push eax
lfence
call fcn.004683b0
add esp, 0xc
push eax
mov ecx, ebx
mov byte [ebp - 4], 0x5e
mov dword [ebp - 0x24], 0x10000
call fcn.00419ad0
mov edi, 0x10000
jmp 0x4967b2
xor esi, esi
mov dword [ebp - 0x20], esi
lea eax, [ebp - 0x20]
mov dword [ebp - 4], 0x5f
push eax
mov ecx, ebx
mov dword [ebp - 0x24], 0x20000
call fcn.00419ad0
xor edi, edi
mov dword [ebp - 4], 0x60
mov dword [ebp - 4], 0x57
test edi, 0x10000
je 0x4967d1
mov ecx, dword [ebp - 0x28]
mov byte [ebp - 4], 0x61
test ecx, ecx
je 0x4967d1
call fcn.004a2a20
lea ecx, [ebp - 0x1c]
mov esi, 0x4e42f8
call fcn.0043ff40
mov eax, esi
jmp 0x49662f
dec esi
sub eax, 0
je 0x496955
sub eax, 1
je 0x4968c2
sub eax, 1
jne case.0x496345.3
test ecx, ecx
je 0x49680a
lea edx, [ecx + 2]
jmp 0x49680c
xor edx, edx
sub esi, 0
je 0x4968b9
sub esi, 1
je 0x496876
sub esi, 1
jne case.0x496345.3
mov esi, dword [edx + 8]
test esi, esi
je case.0x496345.3
test ecx, ecx
je 0x496837
movzx eax, word [ecx]
jmp 0x496839
xor eax, eax
add eax, 0xfffffff4
cmp esi, eax
jb 0x49684e
test ecx, ecx
je 0x496849
movzx esi, word [ecx]
jmp 0x49684b
xor esi, esi
add esi, 0xfffffff4
push dword [edi + 0x2c]
lea eax, [edx + 0xc]
push ebx
push eax
push esi
push dword [edx + 4]
call fcn.00496f50
add esp, 0x14
lea ecx, [ebp - 0x1c]
mov esi, 0x4f7730
call fcn.0043ff40
mov eax, esi
jmp 0x49662f
push 0
push 0
push dword [edx + 8]
lea eax, [ebp - 0x20]
push eax
call fcn.0046ab10
add esp, 0x10
push eax
mov ecx, ebx
mov byte [ebp - 4], 0x64
call fcn.00419ad0
mov byte [ebp - 4], 0x65
mov ecx, dword [ebp - 0x20]
test ecx, ecx
je 0x4968a5
call fcn.004a2a20
lea ecx, [ebp - 0x1c]
mov esi, 0x4e6328
call fcn.0043ff40
mov eax, esi
jmp 0x49662f
push ebx
push dword [edx + 4]
jmp 0x49696c
test ecx, ecx
je 0x4968cb
lea edx, [ecx + 2]
jmp 0x4968cd
xor edx, edx
sub esi, 0
je 0x4968b9
sub esi, 1
je 0x49692d
sub esi, 1
jne case.0x496345.3
mov esi, dword [edx + 0xc]
test esi, esi
je case.0x496345.3
mov eax, dword [edi + 0x2c]
mov edi, dword [edx + 8]
add edi, edx
mov dword [ebp - 0x20], eax
test ecx, ecx
je 0x4968ff
movzx eax, word [ecx]
jmp 0x496901
xor eax, eax
add eax, 0xffffffe8
cmp esi, eax
jb 0x496923
test ecx, ecx
je 0x49691c
push dword [ebp - 0x20]
movzx esi, word [ecx]
push ebx
add esi, 0xffffffe8
push edi
jmp 0x496856
xor esi, esi
mov esi, 0xffffffe8
push dword [ebp - 0x20]
push ebx
push edi
jmp 0x496856
push 0
push 0
push dword [edx + 0xc]
lea eax, [ebp - 0x20]
push eax
call fcn.0046ab10
add esp, 0x10
push eax
mov ecx, ebx
mov byte [ebp - 4], 0x62
call fcn.00419ad0
mov byte [ebp - 4], 0x63
jmp 0x496899
test ecx, ecx
je 0x49695e
add ecx, 2
jmp 0x496960
xor ecx, ecx
test esi, esi
jne case.0x496345.3
push ebx
push dword [ecx + 4]
call fcn.00497420
add esp, 8
lea ecx, [ebp - 0x1c]
mov esi, 0x4e54c8
call fcn.0043ff40
mov eax, esi
jmp 0x49662f
cmp esi, 0xfffffffe
je 0x496cd4
movzx eax, word [edi + 0x28]
add eax, 0xd
lea eax, [edi + eax*4]
mov dword [ebp - 0x2c], eax
sub esi, 0
je 0x496a2a
sub esi, 1
je 0x4969fc
sub esi, 1
jne case.0x4957a3.2
cmp word [eax + 0xc], si
je case.0x4957a3.2
mov esi, dword [edi + 0x2c]
mov ecx, edi
call fcn.00496dd0
mov ecx, dword [ebp - 0x2c]
push esi
push ebx
push eax
movzx edi, word [ecx + 0xc]
mov edx, dword [ecx + 8]
mov eax, edi
cmp edx, edi
movzx ecx, dx
cmovae ecx, eax
movzx eax, cx
push eax
mov eax, dword [ebp - 0x2c]
push dword [eax + 4]
call fcn.00496f50
add esp, 0x14
mov eax, 0x4f7730
jmp 0x49662f
push 0
push 0
push dword [eax + 8]
lea eax, [ebp - 0x20]
push eax
call fcn.0046ab10
add esp, 0x10
push eax
mov ecx, ebx
mov dword [ebp - 4], 0x66
call fcn.00419ad0
mov dword [ebp - 4], 0x67
jmp 0x496b82
push ebx
push dword [eax + 4]
call fcn.00497420
add esp, 8
mov eax, 0x4e54c8
jmp 0x49662f
cmp esi, 0xfffffffe
je 0x496cf6
movzx eax, word [edi + 0x28]
lea eax, [edi + eax*4]
sub esi, 0
je 0x496b98
sub esi, 1
je 0x496b57
sub esi, 1
jne case.0x4957a3.2
cmp word [eax + 0x40], si
je case.0x4957a3.2
mov eax, dword [eax + 0x38]
sub eax, esi
je 0x496b13
sub eax, 1
je 0x496ad0
sub eax, 4
jne case.0x4957a3.2
mov ecx, edi
call fcn.00496dd0
push esi
push dword [eax]
lea eax, [ebp - 0x30]
push eax
call fcn.004696e0
add esp, 0xc
push eax
mov ecx, ebx
mov dword [ebp - 4], 0x76
call fcn.00419ad0
mov ecx, dword [ebp - 0x30]
mov dword [ebp - 4], 0x77
test ecx, ecx
je 0x496ac6
call fcn.004a2a20
mov eax, 0x4f76d8
jmp 0x49662f
mov ecx, edi
call fcn.00496dd0
push 0
push dword [eax]
lea eax, [ebp - 0x20]
push eax
call fcn.004696e0
add esp, 0xc
push eax
mov ecx, ebx
mov dword [ebp - 4], 0x74
call fcn.00419ad0
mov ecx, dword [ebp - 0x20]
mov dword [ebp - 4], 0x75
test ecx, ecx
je 0x496b09
call fcn.004a2a20
mov eax, 0x4f7808
jmp 0x49662f
mov ecx, edi
call fcn.00496dd0
push dword [eax + 4]
push dword [eax]
lea eax, [ebp - 0x20]
push eax
call fcn.00466f10
add esp, 0xc
push eax
mov ecx, ebx
mov dword [ebp - 4], 0x72
call fcn.00419ad0
mov ecx, dword [ebp - 0x20]
mov dword [ebp - 4], 0x73
test ecx, ecx
je 0x496b4d
call fcn.004a2a20
mov eax, 0x4ead60
jmp 0x49662f
movzx eax, word [eax + 0x40]
cdq
push 0
push edx
push eax
lea eax, [ebp - 0x20]
push eax
call fcn.0046ab10
add esp, 0x10
push eax
mov ecx, ebx
mov dword [ebp - 4], 0x70
call fcn.00419ad0
mov dword [ebp - 4], 0x71
mov ecx, dword [ebp - 0x20]
test ecx, ecx
je 0x496b8e
call fcn.004a2a20
mov eax, 0x4e6328
jmp 0x49662f
mov ecx, dword [eax + 0x38]
mov eax, ecx
sub eax, 0
je 0x496c93
sub eax, 1
je 0x496c7d
sub eax, 4
je 0x496c67
push 0
push ecx
lea eax, [ebp - 0x24]
push eax
call fcn.00469740
push eax
lea eax, [ebp - 0x28]
mov dword [ebp - 4], 0x68
push 0x4f75d8
push eax
call fcn.004a23a0
mov esi, eax
push 0x4eb8bc
mov byte [ebp - 4], 0x69
call fcn.004a27e0
push eax
push 0x4eb8bc
call fcn.004a29e0
add esp, 0x24
mov dword [ebp - 0x2c], eax
lea eax, [ebp - 0x2c]
mov byte [ebp - 4], 0x6a
push eax
lea eax, [ebp - 0x20]
mov ecx, esi
push eax
call fcn.004a24b0
push eax
mov ecx, ebx
mov byte [ebp - 4], 0x6b
call fcn.00419ad0
mov ecx, dword [ebp - 0x20]
mov byte [ebp - 4], 0x6c
test ecx, ecx
je 0x496c2a
call fcn.004a2a20
mov ecx, dword [ebp - 0x2c]
mov byte [ebp - 4], 0x6d
test ecx, ecx
je 0x496c3a
call fcn.004a2a20
mov ecx, dword [ebp - 0x28]
mov byte [ebp - 4], 0x6e
test ecx, ecx
je 0x496c4a
call fcn.004a2a20
mov ecx, dword [ebp - 0x24]
mov dword [ebp - 4], 0x6f
test ecx, ecx
je 0x496c9f
call fcn.004a2a20
mov eax, 0x4f77d8
jmp 0x49662f
push 0x4f77a0
mov ecx, ebx
call fcn.004a2300
mov eax, 0x4f77d8
jmp 0x49662f
push 0x4f776c
mov ecx, ebx
call fcn.004a2300
mov eax, 0x4f77d8
jmp 0x49662f
push 0x4f773c
mov ecx, ebx
call fcn.004a2300
mov eax, 0x4f77d8
jmp 0x49662f
cmp esi, 0xfffffffe
jne case.0x4957a3.2
mov eax, dword [0x52d94c]
mov ecx, ebx
push dword [eax + 4]
call fcn.004a2300
mov eax, 0x4eafdc
jmp 0x49662f
cmp esi, 0xfffffffe
jne case.0x4957a3.2
mov eax, dword [0x52d94c]
mov ecx, ebx
push dword [eax + 8]
call fcn.004a2300
mov eax, 0x4eafdc
jmp 0x49662f
cmp esi, 0xfffffffe
jne case.0x4957a3.2
mov eax, dword [0x52d94c]
mov ecx, ebx
push dword [eax + 0x10]
call fcn.004a2300
mov eax, 0x4eafdc
jmp 0x49662f
cmp esi, 0xfffffffe
jne case.0x4957a3.2
mov eax, dword [0x52d94c]
mov ecx, ebx
push dword [eax + 0xc]
call fcn.004a2300
mov eax, 0x4eafdc
jmp 0x49662f