Function at 0x470280
Capabilities:
Get system information on windows
Inspect section memory permissions
Parse pe header

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff0
sub esp, 0x8e8
mov eax, dword [0x4a206c]
xor eax, esp
mov dword [esp + 0x8e4], eax
push esi
push edi
push 0x540
lea eax, [esp + 0x21c]
push 0
push eax
call fcn.00443980
add esp, 0xc
lea eax, [esp + 0x68]
push 0x1b0
push 0
push eax
call fcn.00443980
add esp, 0xc
lea ecx, [esp + 0x218]
call fcn.00480dd0
push 0x1b0
lea eax, [esp + 0x6c]
push 0
push eax
call fcn.00443980
add esp, 0xc
mov dword [esp + 0x16c], 0xffffffff
lea eax, [esp + 0x880]
mov dword [esp + 0x168], 0xffffffff
mov dword [esp + 0x164], 0xffffffff
mov dword [esp + 0x160], 0xffffffff
push 0x40
push 0
push eax
mov dword [esp + 0x168], 0xffffffff
mov dword [esp + 0x188], 0xffffffff
mov dword [esp + 0x184], 0xffffffff
mov dword [esp + 0x180], 0xffffffff
mov dword [esp + 0x17c], 0xffffffff
mov dword [esp + 0x198], 0xffffffff
mov dword [esp + 0x194], 0xffffffff
mov dword [esp + 0x190], 0xffffffff
mov dword [esp + 0x18c], 0xffffffff
mov dword [esp + 0x1dc], 0xffffffff
call fcn.00443980
movq xmm0, qword [0x4ad33c]
or eax, 0xffffffff
mov dword [esp + 0x20], eax
add esp, 0xc
mov eax, dword [0x4ad344]
mov dword [esp + 0x7c4], eax
movzx eax, byte [0x4ad348]
mov byte [esp + 0x7c8], al
xor eax, eax
mov word [esp + 0x7c9], ax
mov byte [esp + 0x7cb], al
mov eax, dword [0x4ad364]
mov dword [esp + 0x7d8], eax
movzx eax, byte [0x4ad368]
mov byte [esp + 0x7dc], al
xor eax, eax
mov word [esp + 0x7dd], ax
mov byte [esp + 0x7df], al
mov eax, dword [0x4ad384]
mov dword [esp + 0x7ec], eax
movzx eax, byte [0x4ad388]
movq qword [esp + 0x7bc], xmm0
movq xmm0, qword [0x4ad35c]
mov byte [esp + 0x7f0], al
xor eax, eax
movq qword [esp + 0x7d0], xmm0
movq xmm0, qword [0x4ad37c]
mov word [esp + 0x7f1], ax
mov byte [esp + 0x7f3], al
mov eax, dword [0x4ad3a4]
movq qword [esp + 0x7e4], xmm0
movq xmm0, qword [0x4ad39c]
mov dword [esp + 0x800], eax
movzx eax, byte [0x4ad3a8]
mov dword [esp + 0x7b8], 0
mov dword [esp + 0x7cc], 1
mov dword [esp + 0x7e0], 2
mov dword [esp + 0x7f4], 3
movq qword [esp + 0x7f8], xmm0
mov byte [esp + 0x804], al
xor eax, eax
movq xmm0, qword [0x4ad3bc]
mov word [esp + 0x805], ax
lea edi, [esp + 0x7bc]
mov byte [esp + 0x807], al
mov eax, dword [0x4ad3c4]
mov dword [esp + 0x814], eax
movzx eax, byte [0x4ad3c8]
mov byte [esp + 0x818], al
xor eax, eax
mov word [esp + 0x819], ax
mov byte [esp + 0x81b], al
mov eax, dword [0x4ad3e4]
mov dword [esp + 0x828], eax
movzx eax, byte [0x4ad3e8]
mov byte [esp + 0x82c], al
xor eax, eax
mov word [esp + 0x82d], ax
mov byte [esp + 0x82f], al
mov eax, dword [0x4ad404]
mov dword [esp + 0x83c], eax
movzx eax, byte [0x4ad408]
mov byte [esp + 0x840], al
xor eax, eax
mov word [esp + 0x841], ax
mov byte [esp + 0x843], al
mov eax, dword [0x4ad424]
mov dword [esp + 0x850], eax
movzx eax, byte [0x4ad428]
mov byte [esp + 0x854], al
xor eax, eax
mov word [esp + 0x855], ax
mov byte [esp + 0x857], al
mov eax, dword [0x4ad444]
mov dword [esp + 0x864], eax
movzx eax, byte [0x4ad448]
mov byte [esp + 0x868], al
xor eax, eax
movq qword [esp + 0x80c], xmm0
movq xmm0, qword [0x4ad3dc]
mov word [esp + 0x869], ax
mov byte [esp + 0x86b], al
mov eax, dword [0x4ad464]
mov dword [esp + 0x878], eax
movzx eax, byte [0x4ad468]
movq qword [esp + 0x820], xmm0
movq xmm0, qword [0x4ad3fc]
mov byte [esp + 0x87c], al
xor eax, eax
movq qword [esp + 0x834], xmm0
xor esi, esi
movq xmm0, qword [0x4ad41c]
mov word [esp + 0x87d], ax
mov byte [esp + 0x87f], al
mov eax, dword [esp + 0x21c]
movq qword [esp + 0x848], xmm0
movq xmm0, qword [0x4ad43c]
mov dword [esp + 0x68], eax
mov eax, dword [esp + 0x224]
movq qword [esp + 0x85c], xmm0
movq xmm0, qword [0x4ad45c]
mov dword [esp + 0x6c], eax
mov eax, dword [esp + 0x220]
mov dword [esp + 0x808], 4
mov dword [esp + 0x81c], 5
mov dword [esp + 0x830], 6
mov dword [esp + 0x844], 7
mov dword [esp + 0x858], 8
mov dword [esp + 0x86c], 9
movq qword [esp + 0x870], xmm0
mov dword [esp + 0x70], eax
mov byte [esp + 0x74], 0
mov eax, edi
lea ecx, [esp + 0x68]
mov dl, byte [ecx]
cmp dl, byte [eax]
jne 0x4706b7
test dl, dl
je 0x4706b3
mov dl, byte [ecx + 1]
cmp dl, byte [eax + 1]
jne 0x4706b7
add ecx, 2
add eax, 2
test dl, dl
jne 0x470697
xor eax, eax
jmp 0x4706bc
sbb eax, eax
or eax, 1
test eax, eax
je 0x4706ce
inc esi
add edi, 0x14
cmp esi, 0xa
jl 0x470691
or eax, 0xffffffff
jmp 0x4706dc
lea eax, [esi + esi*4]
mov eax, dword [esp + eax*4 + 0x7b8]
mov dword [esp + 0x14], eax
mov dword [esp + 0xb8], eax
mov esi, 1
cmp eax, 0xffffffff
je 0x4714c5
cmp dword [esp + 0x218], esi
jl 0x470769
mov ecx, dword [esp + 0x228]
mov esi, ecx
mov edi, ecx
shr esi, 8
mov edx, ecx
shr edi, 4
mov eax, ecx
shr edx, 0x10
and esi, 0xf
shr ecx, 0x14
and edi, 0xf
mov dword [esp + 0x13c], esi
and eax, 0xf
mov dword [esp + 0x140], edi
and edx, 0xf
mov dword [esp + 0x144], eax
cmp dword [esp + 0x14], 1
movzx ecx, cl
jne 0x47074e
cmp esi, 0xf
jge 0x47074e
mov dword [esp + 0x148], esi
jmp 0x470758
lea eax, [esi + ecx]
mov dword [esp + 0x148], eax
shl edx, 4
mov esi, 1
add edx, edi
mov dword [esp + 0x14c], edx
mov eax, dword [esp + 0x418]
add eax, 0xf8000000
cmp eax, 4
jl 0x470803
xor ecx, ecx
mov eax, dword [esp + ecx + 0x438]
mov dword [esp + ecx + 0x880], eax
mov eax, dword [esp + ecx + 0x43c]
mov dword [esp + ecx + 0x884], eax
mov eax, dword [esp + ecx + 0x440]
mov dword [esp + ecx + 0x888], eax
mov eax, dword [esp + ecx + 0x444]
mov dword [esp + ecx + 0x88c], eax
add ecx, 0x10
cmp ecx, 0x30
jl 0x470780
xor eax, eax
mov byte [esp + 0x8b0], 0
cmp byte [esp + 0x880], 0x20
jne 0x4707df
inc eax
cmp byte [esp + eax + 0x880], 0x20
je 0x4707d4
lea ecx, [esp + 0x880]
add eax, ecx
push 0x40
push eax
lea eax, [esp + 0x80]
push eax
call fcn.00446b60
add esp, 0xc
mov byte [esp + 0xa8], 0
lea edx, [esp + 0x68]
lea ecx, [esp + 0x218]
call fcn.00480978
lea eax, [esp + 0x44]
push eax
call dword [sym.imp.KERNEL32.dll_GetSystemInfo]
mov eax, dword [esp + 0x58]
mov dword [esp + 0x158], eax
mov eax, dword [esp + 0xb8]
sub eax, 0
je 0x470dd7
sub eax, 1
jne 0x4714c5
mov edi, dword [esp + 0x418]
mov dword [esp + 0x880], 1
mov dword [esp + 0x884], 0x3f
mov dword [esp + 0x888], 2
mov dword [esp + 0x88c], 0x40
mov dword [esp + 0x890], 5
mov dword [esp + 0x894], 0x41
mov dword [esp + 0x898], 6
mov dword [esp + 0x89c], 0x43
mov dword [esp + 0x8a0], 7
mov dword [esp + 0x8a4], 0x42
mov dword [esp + 0x8a8], 8
mov dword [esp + 0x8ac], 0x44
mov dword [esp + 0x8b0], 9
mov dword [esp + 0x8b4], 0x45
mov dword [esp + 0x8b8], 0xa
mov dword [esp + 0x8bc], 0x46
mov dword [esp + 0x8c0], 0xb
mov dword [esp + 0x8c4], 0x53
mov dword [esp + 0x8c8], 0xc
mov dword [esp + 0x8cc], 0x48
mov dword [esp + 0x8d0], 0xd
mov dword [esp + 0x8d4], 0x49
mov dword [esp + 0x8d8], 0x10
mov dword [esp + 0x8dc], 0x55
mov dword [esp + 0x8e0], 0x15
mov dword [esp + 0x8e4], 0x56
mov dword [esp + 0x758], eax
mov dword [esp + 0x75c], 0x4a
mov dword [esp + 0x760], 1
mov dword [esp + 0x764], 0x4b
mov dword [esp + 0x768], 2
mov dword [esp + 0x76c], 0x4c
mov dword [esp + 0x770], 3
mov dword [esp + 0x774], 0x4d
mov dword [esp + 0x778], 4
mov dword [esp + 0x77c], 0x4e
mov dword [esp + 0x780], 5
mov dword [esp + 0x784], 0x4f
mov dword [esp + 0x788], 6
mov dword [esp + 0x78c], 0x50
mov dword [esp + 0x790], 7
mov dword [esp + 0x794], 0x51
mov dword [esp + 0x798], 9
mov dword [esp + 0x79c], 0x5a
mov dword [esp + 0x7a0], 0xa
mov dword [esp + 0x7a4], 0x5b
mov dword [esp + 0x7a8], 0xb
mov dword [esp + 0x7ac], 0x5c
mov dword [esp + 0x7b0], 0xc
mov dword [esp + 0x7b4], 0x5d
cmp edi, reloc.WS2_32.dll_accept
jb 0x470b2f
mov ecx, dword [esp + 0x434]
mov edi, 1
movzx eax, byte [esp + 0xf6]
test ecx, 0x100000
cmovne eax, esi
test ecx, 0x400000
mov byte [esp + 0xf6], al
movzx eax, byte [esp + 0xf3]
cmovne eax, esi
test ecx, 0x2000000
mov byte [esp + 0xf3], al
movzx eax, byte [esp + 0xf7]
cmovne eax, esi
test ecx, 0x40000000
mov byte [esp + 0xf7], al
movzx eax, byte [esp + 0xf5]
cmovne eax, esi
test ecx, 0x80000000
mov byte [esp + 0xf5], al
movzx eax, byte [esp + 0xf4]
cmovne eax, esi
mov esi, dword [esp + 0x430]
mov byte [esp + 0xf4], al
xor edx, edx
mov ecx, dword [esp + edx*8 + 0x880]
mov eax, edi
shl eax, cl
test esi, eax
je 0x470b22
mov eax, dword [esp + edx*8 + 0x884]
mov byte [esp + eax + 0xbc], 1
inc edx
cmp edx, 0xd
jl 0x470b04
mov edi, dword [esp + 0x418]
cmp edi, reloc.WS2_32.dll_getsockopt
jb 0x470c17
mov edx, dword [esp + 0x494]
xor esi, esi
mov edi, 1
nop dword [eax]
mov ecx, dword [esp + esi*8 + 0x758]
mov eax, edi
shl eax, cl
test edx, eax
je 0x470b6e
mov eax, dword [esp + esi*8 + 0x75c]
mov byte [esp + eax + 0xbc], 1
mov ecx, dword [esp + esi*8 + 0x760]
mov eax, edi
shl eax, cl
test edx, eax
je 0x470b8c
mov eax, dword [esp + esi*8 + 0x764]
mov byte [esp + eax + 0xbc], 1
mov ecx, dword [esp + esi*8 + 0x768]
mov eax, edi
shl eax, cl
test edx, eax
je 0x470baa
mov eax, dword [esp + esi*8 + 0x76c]
mov byte [esp + eax + 0xbc], 1
mov ecx, dword [esp + esi*8 + 0x770]
mov eax, edi
shl eax, cl
test edx, eax
je 0x470bc8
mov eax, dword [esp + esi*8 + 0x774]
mov byte [esp + eax + 0xbc], 1
mov ecx, dword [esp + esi*8 + 0x778]
mov eax, edi
shl eax, cl
test edx, eax
je 0x470be6
mov eax, dword [esp + esi*8 + 0x77c]
mov byte [esp + eax + 0xbc], 1
mov ecx, dword [esp + esi*8 + 0x780]
mov eax, edi
shl eax, cl
test edx, eax
je 0x470c04
mov eax, dword [esp + esi*8 + 0x784]
mov byte [esp + eax + 0xbc], 1
add esi, 6
cmp esi, 0xc
jl 0x470b50
mov edi, dword [esp + 0x418]
cmp edi, 0x8000001a
jb 0x470c3c
mov eax, dword [esp + 0x5b8]
and eax, 1
mov byte [esp + 0x1d4], 1
inc eax
shl eax, 6
mov dword [esp + 0x1d0], eax
movaps xmm0, xmmword [0x499d00]
movups xmmword [esp + 0x880], xmm0
movaps xmm0, xmmword [0x499d10]
movups xmmword [esp + 0x890], xmm0
movaps xmm0, xmmword [0x499d20]
movups xmmword [esp + 0x8a0], xmm0
movaps xmm0, xmmword [0x499d30]
movups xmmword [esp + 0x8b0], xmm0
cmp edi, 0x80000005
jb 0x470cbc
movzx eax, byte [esp + 0x473]
mov dword [esp + 0x15c], eax
movzx eax, byte [esp + 0x472]
mov dword [esp + 0x170], eax
movzx eax, byte [esp + 0x470]
mov dword [esp + 0x180], eax
movzx eax, byte [esp + 0x477]
mov dword [esp + 0x160], eax
cmp edi, reloc.WS2_32.dll_getsockname
jb 0x470d45
movzx eax, word [esp + 0x482]
mov ecx, dword [esp + 0x480]
mov dword [esp + 0x164], eax
mov eax, ecx
shr eax, 0xc
and eax, 0xf
mov eax, dword [esp + eax*4 + 0x880]
mov dword [esp + 0x174], eax
movzx eax, cl
mov ecx, dword [esp + 0x484]
mov dword [esp + 0x184], eax
mov eax, ecx
shr eax, 0x12
test eax, eax
je 0x470d3a
shl eax, 9
mov dword [esp + 0x168], eax
mov eax, ecx
shr eax, 0xc
and eax, 0xf
mov eax, dword [esp + eax*4 + 0x880]
mov dword [esp + 0x178], eax
movzx eax, cl
mov dword [esp + 0x188], eax
jmp 0x470d45
mov dword [esp + 0x168], 0
or ecx, 0xffffffff
or eax, ecx
cmp dword [esp + 0x218], 1
jb 0x470d6a
movzx ecx, byte [esp + 0x22e]
cmp edi, 8
jb 0x470d6a
movzx eax, byte [esp + 0x4a0]
inc eax
cmp byte [esp + 0xd6], 0
je 0x470dbc
cmp eax, 1
jle 0x470d9b
cmp dword [esp + 0x148], 0x17
jl 0x470d88
cdq
sub eax, edx
sar eax, 1
mov dword [esp + 0x150], eax
mov dword [esp + 0x154], ecx
jmp 0x4714c5
mov eax, 2
mov dword [esp + 0x150], 1
cmp ecx, eax
cmovge eax, ecx
mov dword [esp + 0x154], eax
jmp 0x4714c5
mov dword [esp + 0x154], 1
mov dword [esp + 0x150], 1
jmp 0x4714c5
mov edi, dword [esp + 0x218]
mov dword [esp + 0x758], 2
mov dword [esp + 0x75c], 0x20
mov dword [esp + 0x760], 4
mov dword [esp + 0x764], 0x22
mov dword [esp + 0x768], 5
mov dword [esp + 0x76c], 0x23
mov dword [esp + 0x770], 6
mov dword [esp + 0x774], 0x24
mov dword [esp + 0x778], 7
mov dword [esp + 0x77c], 0x25
mov dword [esp + 0x780], 8
mov dword [esp + 0x784], 0x26
mov dword [esp + 0x788], 0xa
mov dword [esp + 0x78c], 0x28
mov dword [esp + 0x790], 0xe
mov dword [esp + 0x794], 0x2a
mov dword [esp + 0x798], 0xf
mov dword [esp + 0x79c], 0x2b
mov dword [esp + 0x7a0], 0x12
mov dword [esp + 0x7a4], 0x2c
mov dword [esp + 0x7a8], 0x15
mov dword [esp + 0x7ac], 0x59
mov dword [esp + 0x7b8], 2
mov dword [esp + 0x7bc], 0x6b
mov dword [esp + 0x7c0], 4
mov dword [esp + 0x7c4], 0x61
mov dword [esp + 0x7c8], 0xb
mov dword [esp + 0x7cc], 0x62
mov dword [esp + 0x7d0], 0x10
mov dword [esp + 0x7d4], 0x63
mov dword [esp + 0x7d8], 0x11
mov dword [esp + 0x7dc], 0x64
mov dword [esp + 0x7e0], 0x12
mov dword [esp + 0x7e4], 0x6c
mov dword [esp + 0x7e8], 0x13
mov dword [esp + 0x7ec], 0x6d
mov dword [esp + 0x7f0], 0x1a
mov dword [esp + 0x7f4], 0x65
mov dword [esp + 0x7f8], 0x1b
mov dword [esp + 0x7fc], 0x66
mov dword [esp + 0x800], 0x1c
mov dword [esp + 0x804], 0x67
mov dword [esp + 0x808], 0x1d
mov dword [esp + 0x80c], 0x68
mov dword [esp + 0x810], 0x1e
mov dword [esp + 0x814], 0x69
mov dword [esp + 0x818], 0x1f
mov dword [esp + 0x81c], 0x6a
cmp edi, 1
jb 0x4710df
mov ecx, dword [esp + 0x234]
mov edi, 1
movzx eax, byte [esp + 0xcd]
test ecx, 0x40000
cmovne eax, esi
test ecx, 0x200000
mov byte [esp + 0xcd], al
movzx eax, byte [esp + 0xcf]
cmovne eax, esi
test ecx, 0x400000
mov byte [esp + 0xcf], al
movzx eax, byte [esp + 0xd0]
cmovne eax, esi
test ecx, 0x8000000
mov byte [esp + 0xd0], al
movzx eax, byte [esp + 0xd5]
cmovne eax, esi
test ecx, 0x20000000
mov byte [esp + 0xd5], al
movzx eax, byte [esp + 0xd7]
cmovne eax, esi
test ecx, 0x40000000
mov byte [esp + 0xd7], al
movzx eax, byte [esp + 0xd8]
cmovne eax, esi
test ecx, 0x80000000
mov byte [esp + 0xd8], al
movzx eax, byte [esp + 0xd9]
cmovne eax, esi
mov esi, dword [esp + 0x230]
mov byte [esp + 0xd9], al
xor edx, edx
mov ecx, dword [esp + edx*8 + 0x758]
mov eax, edi
shl eax, cl
test esi, eax
je 0x4710d2
mov eax, dword [esp + edx*8 + 0x75c]
mov byte [esp + eax + 0xbc], 1
inc edx
cmp edx, 0xb
jl 0x4710b4
mov edi, dword [esp + 0x218]
cmp dword [esp + 0x418], 1
jb 0x47110b
test dword [esp + 0x434], 0x100000
mov ecx, 1
movzx eax, byte [esp + 0xec]
cmovne eax, ecx
mov byte [esp + 0xec], al
cmp edi, 7
jb 0x47114b
mov esi, dword [esp + 0x28c]
xor edx, edx
mov edi, 1
nop
mov ecx, dword [esp + edx*8 + 0x7b8]
mov eax, edi
shl eax, cl
test esi, eax
je 0x47113e
mov eax, dword [esp + edx*8 + 0x7bc]
mov byte [esp + eax + 0xbc], 1
inc edx
cmp edx, 0xd
jl 0x471120
mov edi, dword [esp + 0x218]
cmp edi, 4
jb 0x47122c
xor esi, esi
lea edx, [esp + 0x61c]
mov dword [esp + 0x1c], esi
mov dword [esp + 0x18], edx
mov eax, dword [edx - 4]
mov ecx, eax
and ecx, 0x1f
je 0x471241
shr eax, 5
and eax, 7
cmp eax, 1
jne 0x471197
cmp ecx, eax
jne 0x471188
mov dword [esp + 0x14], eax
jmp 0x4711c4
cmp ecx, 2
jne 0x471197
mov dword [esp + 0x14], 0
jmp 0x4711c4
cmp eax, 2
jne 0x4711a7
cmp ecx, 3
jne 0x4711a7
mov dword [esp + 0x14], eax
jmp 0x4711c4
cmp eax, 3
jne 0x4711b6
cmp ecx, eax
jne 0x4711b6
mov dword [esp + 0x14], eax
jmp 0x4711c4
cmp eax, 4
jne 0x471215
cmp ecx, 3
jne 0x471215
mov dword [esp + 0x14], eax
mov eax, dword [edx]
lea ecx, [esp + 0x68]
mov edi, eax
mov esi, eax
shr eax, 0xc
and esi, 0xfff
push ecx
mov ecx, dword [edx + 4]
and eax, 0x3ff
inc eax
shr edi, 0x16
inc ecx
inc esi
imul eax, ecx
inc edi
push esi
push edi
mov cl, 1
imul eax, esi
imul eax, edi
cdq
and edx, 0x3ff
add eax, edx
mov edx, dword [esp + 0x20]
sar eax, 0xa
push eax
call fcn.00482102
mov edx, dword [esp + 0x28]
add esp, 0x10
mov esi, dword [esp + 0x1c]
inc esi
add edx, 0x10
mov dword [esp + 0x1c], esi
mov dword [esp + 0x18], edx
cmp esi, 8
jl 0x471165
jmp 0x471241
cmp edi, 2
jb 0x471248
lea edx, [esp + 0x68]
lea ecx, [esp + 0x218]
call fcn.00481bcc
mov edi, dword [esp + 0x218]
or ecx, 0xffffffff
or esi, ecx
cmp edi, 0xb
jb 0x4712c7
or edi, ecx
mov dword [esp + 0x14], ecx
lea eax, [esp + 0x69c]
lea edx, [ecx + 5]
movzx ecx, byte [eax + 5]
sub ecx, 1
je 0x471279
sub ecx, 1
jne 0x47127c
movzx ecx, word [eax]
mov dword [esp + 0x14], ecx
jmp 0x471280
movzx edi, word [eax]
mov ecx, dword [esp + 0x14]
add eax, 0x10
sub edx, 1
jne 0x471262
mov dword [esp + 0x18], edi
cmp edi, 0xffffffff
mov edi, dword [esp + 0x218]
je 0x4712c4
cmp ecx, 0xffffffff
je 0x4712c4
mov eax, ecx
mov dword [esp + 0x154], ecx
cdq
mov esi, 1
idiv dword [esp + 0x18]
mov dword [esp + 0x150], eax
test eax, eax
jg 0x47134f
jmp 0x471344
or ecx, 0xffffffff
cmp edi, 1
jb 0x4712e4
movzx ecx, byte [esp + 0x22e]
cmp edi, 4
jb 0x4712e4
mov esi, dword [esp + 0x258]
shr esi, 0x1a
inc esi
cmp byte [esp + 0xd6], 0
je 0x471334
cmp esi, 1
jle 0x471308
mov dword [esp + 0x150], esi
mov esi, 1
mov dword [esp + 0x154], ecx
jmp 0x47134f
mov esi, 1
mov dword [esp + 0x150], 1
cmp ecx, esi
mov eax, esi
cmovge eax, ecx
mov dword [esp + 0x154], eax
cmp eax, esi
jne 0x47134f
mov byte [esp + 0xd6], 0
jmp 0x47134f
mov dword [esp + 0x154], 1
mov esi, 1
mov dword [esp + 0x150], 1
lea eax, [esp + 0x30]
push eax
lea ecx, [esp + 0x6c]
call fcn.00481665
add esp, 4
cmp byte [esp + 0x127], 0
je 0x4714c5
cmp dword [esp + 0x218], 0x12
jb 0x4714c5
mov ecx, dword [esp + 0x338]
test ecx, ecx
je 0x4714c5
movzx eax, byte [esp + 0x1ee]
test cl, 1
cmovne eax, esi
test cl, 2
movzx ecx, byte [esp + 0x1ef]
cmovne ecx, esi
mov byte [esp + 0x1ee], al
mov byte [esp + 0x1ef], cl
test al, al
jne 0x4713bd
test cl, cl
je 0x4713c8
mov dword [esp + 0x1e8], 1
mov eax, dword [esp + 0x33c]
lea edi, [esp + 0x6f8]
mov ecx, dword [esp + 0x6ec]
mov dword [esp + 0x200], eax
movzx eax, byte [esp + 0x344]
mov byte [esp + 0x1ec], al
movzx eax, byte [esp + 0x345]
mov byte [esp + 0x1ed], al
xor eax, eax
or eax, dword [esp + 0x6e8]
mov dword [esp + 0x208], eax
xor eax, eax
or eax, dword [esp + 0x6f0]
xor esi, esi
mov dword [esp + 0x20c], ecx
mov ecx, dword [esp + 0x6f4]
mov dword [esp + 0x210], eax
mov dword [esp + 0x214], ecx
mov dword [esp + 0x1fc], 0xffffffff
cmp esi, 2
jge 0x471453
movups xmm0, xmmword [edi]
movups xmmword [esp + 0x20], xmm0
jmp 0x47147b
lea eax, [esi + 2]
mov dword [esp + 0x20], 0x12
lea ecx, [esp + 0x20]
mov dword [esp + 0x28], eax
mov dword [esp + 0x2c], 0
mov dword [esp + 0x24], 0
call fcn.00481066
mov eax, dword [esp + 0x20]
and al, 0xf
cmp al, 1
jne 0x4714b3
mov eax, dword [esp + 0x28]
xor ecx, ecx
mov edx, dword [esp + 0x2c]
and eax, 0xfffff000
and edx, 0xfffff
or ecx, eax
or ecx, edx
je 0x4714b3
inc esi
add edi, 0x10
cmp esi, 0xf4240
jl 0x471444
mov esi, dword [esp + 0x1fc]
cmp esi, 0xffffffff
mov eax, 0xf4240
cmove esi, eax
mov dword [esp + 0x1fc], esi
push 0x3f
lea eax, [esp + 0x7c]
push eax
push 0x4b0310
call fcn.00446b60
mov eax, dword [esp + 0x164]
add esp, 0xc
mov dword [0x4b0350], eax
cdq
idiv dword [esp + 0x154]
mov ecx, dword [esp + 0x168]
mov esi, eax
mov eax, 1
test esi, esi
cmove esi, eax
mov edx, esi
mov dword [0x4a2e18], esi
imul edx, dword [esp + 0x150]
mov dword [0x4b022c], edx
test ecx, ecx
jle 0x471526
mov eax, esi
imul eax, ecx
mov dword [0x4b0354], eax
jmp 0x471530
mov dword [0x4b0354], 0
mov eax, dword [esp + 0xb8]
cmp eax, 1
jne 0x47156d
mov ecx, dword [esp + 0x148]
add ecx, 0xffffffeb
cmp ecx, eax
ja 0x4715bd
mov eax, edx
mov byte [0x4b01b6], 1
cdq
sub eax, edx
sar eax, 1
imul eax, esi
imul eax, dword [esp + 0x164]
mov dword [0x4b0358], eax
jmp 0x4715e0
test eax, eax
jne 0x4715bd
cmp dword [esp + 0x148], 6
jne 0x4715bd
mov eax, dword [esp + 0x14c]
cmp eax, 0xe
je 0x471591
cmp eax, 0xf
je 0x471591
cmp eax, 0x17
jne 0x4715bd
cmp edx, 1
jle 0x47159f
mov eax, edx
cdq
sub eax, edx
sar eax, 1
jmp 0x4715a4
mov eax, 1
mov ecx, dword [esp + 0x164]
test ecx, ecx
jle 0x4715d6
imul esi, eax
imul esi, ecx
mov dword [0x4b0358], esi
jmp 0x4715e0
mov eax, dword [esp + 0x164]
test eax, eax
jle 0x4715d6
imul edx, esi
imul edx, eax
mov dword [0x4b0358], edx
jmp 0x4715e0
mov dword [0x4b0358], 0
cmp byte [esp + 0xef], 0
mov eax, dword [0x4b02a4]
je 0x4715f7
or eax, 2
mov dword [0x4b02a4], eax
cmp byte [esp + 0x11c], 0
je 0x471609
or eax, 4
mov dword [0x4b02a4], eax
mov ecx, dword [esp + 0x8ec]
pop edi
pop esi
xor ecx, esp
call fcn.0042b571
mov esp, ebp
pop ebp
ret