Function at 0x417420
Capabilities:
Enumerate pe sections

Disassembly:
push 0xffffffffffffffff
push 0x45b071
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x90
push ebx
push ebp
mov ebp, dword [esp + 0xac]
mov ebx, ecx
push esi
cmp ebp, 4
push edi
mov dword [esp + 0x14], ebx
jl 0x418178
mov esi, dword [esp + 0xb0]
xor eax, eax
xor ecx, ecx
xor edx, edx
mov al, byte [esi]
mov cl, byte [esi + 1]
mov dl, byte [esi + 2]
shl eax, 8
add eax, ecx
xor ecx, ecx
mov cl, byte [esi + 3]
shl eax, 8
add eax, edx
shl eax, 8
add eax, ecx
cmp eax, 0x110
ja 0x417a52
je 0x417a0e
cmp eax, 0x101
ja 0x417932
je 0x41791c
cmp eax, 2
ja 0x41787d
je 0x41772c
sub eax, 0
je 0x41760c
dec eax
jne 0x418178
cmp ebp, 0xc
jne 0x418178
mov eax, dword [ebx + 0xd0]
or ebp, 0xffffffff
test eax, eax
jne 0x41750a
push 0x1c
call fcn.0045347a
add esp, 4
mov dword [esp + 0x10], eax
test eax, eax
mov dword [esp + 0xa8], 0xb
je 0x4174fb
mov ecx, eax
call fcn.0041bd80
jmp 0x4174fd
xor eax, eax
mov dword [esp + 0xa8], ebp
mov dword [ebx + 0xd0], eax
push 0x2c
call fcn.0045347a
add esp, 4
mov dword [esp + 0x10], eax
test eax, eax
mov dword [esp + 0xa8], 0xc
je 0x417532
mov ecx, eax
call fcn.0040a6b0
mov edi, eax
jmp 0x417534
xor edi, edi
xor edx, edx
mov dword [edi + 4], 2
mov dl, byte [esi + 4]
xor eax, eax
mov al, byte [esi + 5]
xor ecx, ecx
mov cl, byte [esi + 6]
mov dword [esp + 0xa8], ebp
shl edx, 8
add edx, eax
xor eax, eax
mov al, byte [esi + 7]
shl edx, 8
add edx, ecx
xor ecx, ecx
shl edx, 8
add edx, eax
xor eax, eax
mov dword [edi + 8], edx
mov cl, byte [esi + 8]
mov al, byte [esi + 0xa]
xor edx, edx
mov dl, byte [esi + 9]
shl ecx, 8
add ecx, edx
xor edx, edx
mov dl, byte [esi + 0xb]
shl ecx, 8
add ecx, eax
shl ecx, 8
add ecx, edx
mov dword [edi + 0xc], ecx
mov esi, dword [ebx + 0xd0]
mov eax, dword [esi + 0x10]
mov ebx, dword [esi + 8]
test eax, eax
jne 0x4175ce
mov eax, dword [esi + 0x18]
push 0xc
lea ecx, [esi + 0x14]
push eax
push ecx
call fcn.0044ec81
mov ecx, dword [esi + 0x18]
add eax, 4
lea edx, [ecx + ecx*2]
dec ecx
test ecx, ecx
lea eax, [eax + edx*4 - 0xc]
jl 0x4175ce
inc ecx
mov edx, dword [esi + 0x10]
mov dword [eax], edx
mov dword [esi + 0x10], eax
sub eax, 0xc
dec ecx
jne 0x4175c0
mov eax, dword [esi + 0x10]
mov ecx, dword [eax]
mov dword [esi + 0x10], ecx
mov dword [eax + 4], ebx
mov dword [eax], 0
mov ebx, dword [esi + 0xc]
inc ebx
mov dword [esi + 0xc], ebx
mov dword [eax + 8], 0
mov dword [eax + 8], edi
mov ecx, dword [esi + 8]
test ecx, ecx
je 0x417601
mov dword [ecx], eax
mov dword [esi + 8], eax
jmp 0x418178
mov dword [esi + 4], eax
mov dword [esi + 8], eax
jmp 0x418178
cmp ebp, 8
jne 0x418178
mov eax, dword [ebx + 0xd0]
or ebp, 0xffffffff
test eax, eax
jne 0x417657
push 0x1c
call fcn.0045347a
add esp, 4
mov dword [esp + 0x10], eax
test eax, eax
mov dword [esp + 0xa8], 9
je 0x417648
mov ecx, eax
call fcn.0041bd80
jmp 0x41764a
xor eax, eax
mov dword [esp + 0xa8], ebp
mov dword [ebx + 0xd0], eax
push 0x2c
call fcn.0045347a
add esp, 4
mov dword [esp + 0x10], eax
test eax, eax
mov dword [esp + 0xa8], 0xa
je 0x41767f
mov ecx, eax
call fcn.0040a6b0
mov edi, eax
jmp 0x417681
xor edi, edi
xor edx, edx
mov dword [edi + 4], 1
mov dl, byte [esi + 4]
xor eax, eax
mov al, byte [esi + 5]
xor ecx, ecx
mov cl, byte [esi + 6]
mov dword [esp + 0xa8], ebp
shl edx, 8
add edx, eax
xor eax, eax
mov al, byte [esi + 7]
shl edx, 8
add edx, ecx
shl edx, 8
add edx, eax
mov dword [edi + 8], edx
mov esi, dword [ebx + 0xd0]
mov eax, dword [esi + 0x10]
mov ebx, dword [esi + 8]
test eax, eax
jne 0x4176f5
mov ecx, dword [esi + 0x18]
push 0xc
lea edx, [esi + 0x14]
push ecx
push edx
call fcn.0044ec81
mov ecx, dword [esi + 0x18]
add eax, 4
lea edx, [ecx + ecx*2]
dec ecx
test ecx, ecx
lea eax, [eax + edx*4 - 0xc]
jl 0x4176f5
inc ecx
mov edx, dword [esi + 0x10]
mov dword [eax], edx
mov dword [esi + 0x10], eax
sub eax, 0xc
dec ecx
jne 0x4176e7
mov eax, dword [esi + 0x10]
mov ecx, dword [eax]
mov dword [esi + 0x10], ecx
mov dword [eax + 4], ebx
mov dword [eax], 0
mov ebx, dword [esi + 0xc]
inc ebx
mov dword [esi + 0xc], ebx
mov dword [eax + 8], 0
mov dword [eax + 8], edi
mov ecx, dword [esi + 8]
test ecx, ecx
je 0x417601
mov dword [ecx], eax
mov dword [esi + 8], eax
jmp 0x418178
cmp ebp, 9
jle 0x418178
xor edx, edx
mov dl, byte [esi + 8]
add edx, 9
cmp ebp, edx
jne 0x418178
mov eax, dword [ebx + 0xd0]
or edi, 0xffffffff
test eax, eax
jne 0x417787
push 0x1c
call fcn.0045347a
add esp, 4
mov dword [esp + 0x10], eax
test eax, eax
mov dword [esp + 0xa8], 7
je 0x417778
mov ecx, eax
call fcn.0041bd80
jmp 0x41777a
xor eax, eax
mov dword [esp + 0xa8], edi
mov dword [ebx + 0xd0], eax
push 0x2c
call fcn.0045347a
add esp, 4
mov dword [esp + 0x10], eax
test eax, eax
mov dword [esp + 0xa8], 8
je 0x4177af
mov ecx, eax
call fcn.0040a6b0
mov ebx, eax
jmp 0x4177b1
xor ebx, ebx
xor eax, eax
mov dword [ebx + 4], 0
mov al, byte [esi + 4]
xor ecx, ecx
mov cl, byte [esi + 5]
xor edx, edx
mov dl, byte [esi + 6]
mov dword [esp + 0xa8], edi
shl eax, 8
add eax, ecx
xor ecx, ecx
mov cl, byte [esi + 7]
shl eax, 8
add eax, edx
xor edx, edx
shl eax, 8
add eax, ecx
mov dword [ebx + 8], eax
mov dl, byte [esi + 8]
lea eax, [ebp - 9]
mov dword [ebx + 0xc], edx
push eax
call fcn.00438872
lea ecx, [ebp - 9]
add esi, 9
mov edx, ecx
mov edi, eax
shr ecx, 2
mov dword [ebx + 0x10], eax
mov eax, dword [esp + 0x18]
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
add esp, 4
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov esi, dword [eax + 0xd0]
mov eax, dword [esi + 0x10]
mov edi, dword [esi + 8]
test eax, eax
jne 0x417856
mov ecx, dword [esi + 0x18]
push 0xc
lea edx, [esi + 0x14]
push ecx
push edx
call fcn.0044ec81
mov ecx, dword [esi + 0x18]
add eax, 4
lea edx, [ecx + ecx*2]
dec ecx
test ecx, ecx
lea eax, [eax + edx*4 - 0xc]
jl 0x417856
inc ecx
mov edx, dword [esi + 0x10]
mov dword [eax], edx
mov dword [esi + 0x10], eax
sub eax, 0xc
dec ecx
jne 0x417848
mov eax, dword [esi + 0x10]
mov ecx, dword [eax]
mov dword [esi + 0x10], ecx
mov dword [eax + 4], edi
mov dword [eax], 0
mov edi, dword [esi + 0xc]
inc edi
mov dword [esi + 0xc], edi
mov dword [eax + 8], 0
mov dword [eax + 8], ebx
jmp 0x417717
cmp eax, 0x100
jne 0x418178
cmp ebp, 0xc
jl 0x418178
xor edx, edx
xor eax, eax
mov dl, byte [esi + 4]
mov al, byte [esi + 5]
mov edi, edx
xor ecx, ecx
mov cl, byte [esi + 6]
xor ebx, ebx
mov bl, byte [esi + 8]
xor edx, edx
shl edi, 8
mov dl, byte [esi + 7]
add edi, eax
shl edi, 8
xor eax, eax
add edi, ecx
mov al, byte [esi + 9]
xor ecx, ecx
mov cl, byte [esi + 0xa]
add ebp, 0xfffffff4
shl ebx, 8
shl edi, 8
add ebx, eax
add edi, edx
shl ebx, 8
xor edx, edx
add ebx, ecx
mov dl, byte [esi + 0xb]
add esi, 0xc
shl ebx, 8
push ebp
push esi
lea ecx, [esp + 0x48]
add ebx, edx
call fcn.0041edd0
mov ecx, dword [esp + 0x14]
lea eax, [esp + 0x40]
push eax
push ebx
mov ecx, dword [ecx + 4]
push edi
mov dword [esp + 0xb4], 0x11
call fcn.0040c920
mov dword [esp + 0xa8], 0xffffffff
lea ecx, [esp + 0x40]
jmp 0x418173
cmp ebp, 4
jne 0x418178
mov ecx, dword [ebx + 4]
call fcn.0040ca10
jmp 0x418178
sub eax, 0x102
je 0x4179a3
dec eax
je 0x417967
dec eax
jne 0x418178
cmp ebp, 4
jne 0x418178
mov ecx, dword [ebx + 4]
lea edx, [ebx + 0xf4]
lea eax, [ebx + 0xd4]
push edx
push eax
call fcn.0040caf0
jmp 0x418178
add ebp, 0xfffffffc
add esi, 4
push ebp
push esi
lea ecx, [esp + 0x68]
call fcn.0041edd0
push eax
lea ecx, [ebx + 0xf4]
mov dword [esp + 0xac], 0xe
call fcn.0041f170
mov dword [esp + 0xa8], 0xffffffff
lea ecx, [esp + 0x60]
jmp 0x418173
cmp ebp, 4
jle 0x418178
mov ecx, dword [ebx + 4]
push 0
push 0
call fcn.0040caf0
lea edi, [ebx + 0xd4]
mov ecx, edi
call fcn.0041f090
lea ecx, [ebx + 0xf4]
call fcn.0041f090
add ebp, 0xfffffffc
add esi, 4
push ebp
push esi
lea ecx, [esp + 0x88]
call fcn.0041edd0
push eax
mov ecx, edi
mov dword [esp + 0xac], 0xd
call fcn.0041f130
mov dword [esp + 0xa8], 0xffffffff
lea ecx, [esp + 0x80]
jmp 0x418173
cmp ebp, 0x44
jne 0x418178
add esi, 4
push 0x40
push esi
lea ecx, [esp + 0x24]
call fcn.0041edd0
lea ecx, [esp + 0x1c]
mov dword [esp + 0xa8], 0xf
push ecx
mov ecx, dword [ebx + 4]
call fcn.0040cb40
mov dword [esp + 0xa8], 0xffffffff
lea ecx, [esp + 0x1c]
jmp 0x418173
cmp eax, 0x400
ja 0x418046
je 0x417ff6
sub eax, 0x200
je 0x417c35
dec eax
je 0x417bfd
sub eax, 0xff
jne 0x418178
cmp ebp, 0xc
jl 0x418178
lea edx, [ebp - 4]
and edx, 0x80000007
jns 0x417a99
dec edx
or edx, 0xfffffff8
inc edx
jne 0x418178
lea ecx, [esp + 0x1c]
call fcn.0041baa0
cmp ebp, 4
mov dword [esp + 0xa8], 0
jle 0x417bd7
or eax, 0xffffffff
lea edi, [esi + 5]
sub eax, esi
mov dword [esp + 0x18], eax
push 0xc
call fcn.0045347a
add esp, 4
mov dword [esp + 0x10], eax
test eax, eax
mov byte [esp + 0xa8], 1
je 0x417aed
mov ecx, eax
call fcn.0041d000
mov esi, eax
jmp 0x417aef
xor esi, esi
xor eax, eax
xor ecx, ecx
mov al, byte [edi - 1]
mov cl, byte [edi]
shl eax, 8
add eax, ecx
xor edx, edx
mov dl, byte [edi + 1]
xor ecx, ecx
mov cl, byte [edi + 2]
mov byte [esp + 0xa8], 0
shl eax, 8
add eax, edx
xor edx, edx
shl eax, 8
add eax, ecx
xor ecx, ecx
mov dword [esi + 4], eax
mov dl, byte [edi + 3]
mov cl, byte [edi + 5]
xor eax, eax
mov al, byte [edi + 4]
shl edx, 8
add edx, eax
xor eax, eax
mov al, byte [edi + 6]
shl edx, 8
add edx, ecx
shl edx, 8
add edx, eax
mov dword [esi + 8], edx
mov eax, dword [esp + 0x2c]
mov ebx, dword [esp + 0x24]
test eax, eax
jne 0x417b86
mov ecx, dword [esp + 0x34]
push 0xc
lea edx, [esp + 0x34]
push ecx
push edx
call fcn.0044ec81
mov edx, dword [esp + 0x34]
lea ecx, [edx + edx*2]
lea ecx, [eax + ecx*4 - 8]
lea eax, [edx - 1]
test eax, eax
jl 0x417bb4
lea edx, [eax + 1]
mov eax, dword [esp + 0x2c]
mov dword [ecx], eax
mov eax, ecx
sub ecx, 0xc
dec edx
jne 0x417b78
mov dword [esp + 0x2c], eax
mov edx, dword [eax]
mov dword [esp + 0x2c], edx
mov dword [eax + 4], ebx
mov dword [eax], 0
mov ebx, dword [esp + 0x28]
inc ebx
mov dword [esp + 0x28], ebx
mov dword [eax + 8], 0
mov dword [eax + 8], esi
mov ecx, dword [esp + 0x24]
test ecx, ecx
je 0x417bba
mov dword [ecx], eax
jmp 0x417bbe
mov eax, dword [esp + 0x2c]
jmp 0x417b86
mov dword [esp + 0x20], eax
mov dword [esp + 0x24], eax
mov eax, dword [esp + 0x18]
add edi, 8
add eax, edi
cmp eax, ebp
jl 0x417ac8
mov ebx, dword [esp + 0x14]
lea ecx, [esp + 0x1c]
push ecx
mov ecx, dword [ebx + 4]
call fcn.0040c500
lea ecx, [esp + 0x1c]
mov dword [esp + 0xa8], 0xffffffff
call fcn.0041bb60
jmp 0x418178
cmp ebp, 4
jne 0x418178
mov edx, dword [ebx + 0xcc]
mov ecx, dword [ebx + 4]
push edx
call fcn.0040c440
mov ecx, dword [ebx + 0xcc]
test ecx, ecx
je 0x417c26
mov eax, dword [ecx]
push 1
call dword [eax + 4]
mov dword [ebx + 0xcc], 0
jmp 0x418178
cmp ebp, 0x20
jl 0x418178
xor ecx, ecx
xor edx, edx
mov cl, byte [esi + 0x1c]
mov dl, byte [esi + 0x1d]
shl ecx, 8
add ecx, edx
xor eax, eax
mov al, byte [esi + 0x1e]
xor edx, edx
mov dl, byte [esi + 0x1f]
shl ecx, 8
add ecx, eax
shl ecx, 8
add ecx, edx
lea eax, [ecx*8 + 0x20]
cmp ebp, eax
jne 0x418178
push 0x3c
call fcn.0045347a
add esp, 4
mov dword [esp + 0x10], eax
test eax, eax
mov dword [esp + 0xa8], 2
je 0x417c98
mov ecx, eax
call fcn.0041cb60
mov edi, eax
jmp 0x417c9a
xor edi, edi
movzx cx, byte [esi + 4]
movzx dx, byte [esi + 5]
shl ecx, 8
add ecx, edx
xor edx, edx
mov word [edi + 4], cx
mov dword [esp + 0xa8], 0xffffffff
movzx ax, byte [esi + 6]
movzx cx, byte [esi + 7]
shl eax, 8
add eax, ecx
xor ecx, ecx
mov word [edi + 6], ax
mov dl, byte [esi + 8]
mov cl, byte [esi + 0xa]
xor eax, eax
mov al, byte [esi + 9]
shl edx, 8
add edx, eax
xor eax, eax
mov al, byte [esi + 0xb]
shl edx, 8
add edx, ecx
xor ecx, ecx
shl edx, 8
add edx, eax
xor eax, eax
mov dword [edi + 8], edx
mov cl, byte [esi + 0xc]
mov al, byte [esi + 0xe]
xor edx, edx
mov dl, byte [esi + 0xd]
shl ecx, 8
add ecx, edx
xor edx, edx
mov dl, byte [esi + 0xf]
shl ecx, 8
add ecx, eax
shl ecx, 8
add ecx, edx
mov dword [edi + 0xc], ecx
movzx ax, byte [esi + 0x10]
movzx cx, byte [esi + 0x11]
shl eax, 8
add eax, ecx
xor ecx, ecx
mov word [edi + 0x10], ax
movzx dx, byte [esi + 0x12]
movzx ax, byte [esi + 0x13]
shl edx, 8
add edx, eax
xor eax, eax
mov word [edi + 0x12], dx
mov cl, byte [esi + 0x14]
mov al, byte [esi + 0x16]
xor edx, edx
mov dl, byte [esi + 0x15]
shl ecx, 8
add ecx, edx
xor edx, edx
mov dl, byte [esi + 0x17]
shl ecx, 8
add ecx, eax
xor eax, eax
shl ecx, 8
add ecx, edx
xor edx, edx
mov dword [edi + 0x14], ecx
mov al, byte [esi + 0x18]
mov dl, byte [esi + 0x1a]
xor ecx, ecx
mov cl, byte [esi + 0x19]
shl eax, 8
add eax, ecx
xor ecx, ecx
mov cl, byte [esi + 0x1b]
shl eax, 8
add eax, edx
shl eax, 8
add eax, ecx
mov dword [edi + 0x18], eax
xor edx, edx
xor eax, eax
mov dl, byte [esi + 0x1c]
mov al, byte [esi + 0x1d]
shl edx, 8
add edx, eax
xor ecx, ecx
mov cl, byte [esi + 0x1e]
xor eax, eax
mov al, byte [esi + 0x1f]
mov dword [esp + 0x3c], 0
shl edx, 8
add edx, ecx
xor ecx, ecx
shl edx, 8
add edx, eax
xor eax, eax
mov dword [edi + 0x1c], edx
mov al, byte [esi + 8]
mov cl, byte [esi + 9]
xor edx, edx
mov dl, byte [esi + 0xa]
shl eax, 8
add eax, ecx
xor ecx, ecx
mov cl, byte [esi + 0xb]
shl eax, 8
add eax, edx
xor edx, edx
mov dl, byte [esi + 0x1c]
shl eax, 8
add eax, ecx
xor ecx, ecx
mov cl, byte [esi + 0x1e]
mov dword [esp + 0x18], eax
xor eax, eax
mov al, byte [esi + 0x1d]
shl edx, 8
add edx, eax
xor eax, eax
mov al, byte [esi + 0x1f]
shl edx, 8
add edx, ecx
shl edx, 8
add edx, eax
test edx, edx
jle 0x417f62
lea ebx, [esi + 0x21]
push 0x10
call fcn.0045347a
add esp, 4
mov dword [esp + 0x10], eax
test eax, eax
mov dword [esp + 0xa8], 3
je 0x417e34
mov ecx, eax
call fcn.0041ca80
mov ebp, eax
jmp 0x417e36
xor ebp, ebp
movzx cx, byte [ebx - 1]
movzx dx, byte [ebx]
shl ecx, 8
add ecx, edx
xor eax, eax
mov word [ebp + 4], cx
mov al, byte [ebx + 1]
xor ecx, ecx
xor edx, edx
mov cl, byte [ebx + 2]
mov dl, byte [ebx + 3]
shl eax, 8
add eax, ecx
xor ecx, ecx
mov cl, byte [ebx + 4]
mov dword [esp + 0xa8], 0xffffffff
shl eax, 8
add eax, edx
shl eax, 8
add eax, ecx
mov dword [ebp + 8], eax
movzx dx, byte [ebx + 5]
movzx ax, byte [ebx + 6]
shl edx, 8
add edx, eax
mov word [ebp + 0xc], dx
mov eax, dword [edi + 0x30]
mov ecx, dword [edi + 0x28]
test eax, eax
mov dword [esp + 0x10], ecx
jne 0x417ec7
mov edx, dword [edi + 0x38]
push 0xc
lea eax, [edi + 0x34]
push edx
push eax
call fcn.0044ec81
mov ecx, dword [edi + 0x38]
lea edx, [ecx + ecx*2]
dec ecx
test ecx, ecx
lea eax, [eax + edx*4 - 8]
jl 0x417ec7
inc ecx
mov edx, dword [edi + 0x30]
mov dword [eax], edx
mov dword [edi + 0x30], eax
sub eax, 0xc
dec ecx
jne 0x417eb9
mov eax, dword [edi + 0x30]
mov edx, dword [esp + 0x10]
mov ecx, dword [eax]
mov dword [edi + 0x30], ecx
mov dword [eax + 4], edx
mov dword [eax], 0
mov ecx, dword [edi + 0x2c]
inc ecx
mov dword [edi + 0x2c], ecx
mov dword [eax + 8], 0
mov dword [eax + 8], ebp
mov ecx, dword [edi + 0x28]
test ecx, ecx
je 0x417ef8
mov dword [ecx], eax
jmp 0x417efb
mov dword [edi + 0x24], eax
add ebx, 8
xor ecx, ecx
mov dword [edi + 0x28], eax
xor edx, edx
mov cl, byte [ebx + 1]
mov dl, byte [ebx + 2]
shl ecx, 8
add ecx, edx
mov ebp, dword [esp + 0x18]
xor edx, edx
mov eax, dword [esp + 0x3c]
mov dl, byte [ebx + 3]
inc eax
shl ecx, 8
add ecx, edx
xor edx, edx
mov dl, byte [ebx + 4]
mov dword [esp + 0x3c], eax
shl ecx, 8
add edx, ebp
add edx, ecx
xor ecx, ecx
mov cl, byte [esi + 0x1c]
mov dword [esp + 0x18], edx
xor edx, edx
mov dl, byte [esi + 0x1d]
shl ecx, 8
add ecx, edx
xor edx, edx
mov dl, byte [esi + 0x1e]
shl ecx, 8
add ecx, edx
xor edx, edx
mov dl, byte [esi + 0x1f]
shl ecx, 8
add ecx, edx
cmp eax, ecx
jl 0x417e0c
mov esi, dword [esp + 0x14]
mov eax, dword [esi + 0xcc]
test eax, eax
jne 0x417fa9
push 0x1c
call fcn.0045347a
add esp, 4
mov dword [esp + 0x10], eax
test eax, eax
mov dword [esp + 0xa8], 4
je 0x417f96
mov ecx, eax
call fcn.0041b7c0
jmp 0x417f98
xor eax, eax
mov dword [esp + 0xa8], 0xffffffff
mov dword [esi + 0xcc], eax
mov esi, dword [esi + 0xcc]
mov eax, dword [esi + 0x10]
mov ebx, dword [esi + 8]
test eax, eax
jne 0x4176f5
mov eax, dword [esi + 0x18]
push 0xc
lea ecx, [esi + 0x14]
push eax
push ecx
call fcn.0044ec81
mov ecx, dword [esi + 0x18]
add eax, 4
lea edx, [ecx + ecx*2]
dec ecx
test ecx, ecx
lea eax, [eax + edx*4 - 0xc]
jl 0x4176f5
inc ecx
mov edx, dword [esi + 0x10]
mov dword [eax], edx
mov dword [esi + 0x10], eax
sub eax, 0xc
dec ecx
jne 0x417fe3
jmp 0x4176f5
cmp ebp, 0xa
jne 0x418178
add esi, 4
push 6
push esi
lea ecx, [esp + 0x24]
call fcn.0041edd0
mov ecx, dword [ebx + 4]
lea edx, [esp + 0x1c]
push edx
mov dword [esp + 0xac], 5
call fcn.0040c7a0
lea ecx, [esp + 0x1c]
mov dword [esp + 0xa8], 0xffffffff
call fcn.0041f010
mov dword [ebx + 0x74], 0
jmp 0x418178
cmp eax, 0x500
je 0x41813b
cmp eax, 0x600
je 0x4180c1
cmp eax, 0x700
jne 0x418178
cmp ebp, 0xc
jne 0x418178
xor eax, eax
xor ecx, ecx
mov al, byte [esi + 8]
mov cl, byte [esi + 9]
shl eax, 8
add eax, ecx
xor edx, edx
mov dl, byte [esi + 0xa]
xor ecx, ecx
mov cl, byte [esi + 0xb]
shl eax, 8
add eax, edx
xor edx, edx
mov dl, byte [esi + 4]
shl eax, 8
add eax, ecx
xor ecx, ecx
mov cl, byte [esi + 6]
push eax
xor eax, eax
mov al, byte [esi + 5]
shl edx, 8
add edx, eax
xor eax, eax
mov al, byte [esi + 7]
shl edx, 8
add edx, ecx
mov ecx, dword [ebx + 4]
shl edx, 8
add edx, eax
push edx
call fcn.0040cc50
jmp 0x418178
cmp ebp, 4
jle 0x418128
add ebp, 0xfffffffc
add esi, 4
push ebp
push esi
lea ecx, [esp + 0x1c]
call fcn.0044e217
mov ecx, dword [esp + 0x14]
mov dword [esp + 0xa8], 6
mov eax, dword [ecx - 8]
mov cl, byte [eax + ecx - 1]
test cl, cl
jne 0x4180fe
dec eax
push 1
push eax
lea ecx, [esp + 0x1c]
call fcn.0044e249
lea ecx, [esp + 0x14]
push ecx
mov ecx, dword [ebx + 4]
call fcn.0040c810
lea ecx, [esp + 0x14]
mov dword [esp + 0xa8], 0xffffffff
call fcn.00453112
mov dword [ebx + 0x74], 0
jmp 0x418178
mov ecx, dword [ebx + 4]
push 0
call fcn.0040c810
mov dword [ebx + 0x74], 0
jmp 0x418178
add ebp, 0xfffffffc
add esi, 4
push ebp
push esi
lea ecx, [esp + 0x24]
call fcn.0041edd0
mov ecx, dword [ebx + 4]
lea edx, [esp + 0x1c]
push edx
mov dword [esp + 0xac], 0x10
call fcn.0040cab0
mov dword [esp + 0xa8], 0xffffffff
lea ecx, [esp + 0x1c]
call fcn.0041f010
mov ecx, dword [esp + 0xa0]
pop edi
pop esi
pop ebp
pop ebx
mov dword fs:[0], ecx
add esp, 0x9c
ret 8