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

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff0
sub esp, 0x470
mov eax, dword [0x64a040]
xor eax, ebp
mov dword [esp + 0x468], eax
mov edi, dword [ecx + 0x6c]
mov edx, dword [ecx + 0x70]
cmp edi, edx
jne 0x40132f
mov ecx, dword [esp + 0x468]
xor ecx, ebp
call fcn.005810d5
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret 8
mov eax, dword [ebp + 8]
mov dword [esp + 0x38], eax
mov eax, dword [ebp + 0xc]
mov dword [esp + 0x34], eax
mov dword [esp + 0x14], ecx
add ecx, 0x68
lea eax, [esp + 0x54]
mov dword [esp + 0x4c], ecx
mov dword [eax], ecx
mov dword [esp + 0x50], 0xffffffff
mov dword [esp + 0x68], eax
lea eax, [edx - 0x70]
mov dword [esp + 0xc], eax
mov ebx, edi
mov dword [esp + 0x10], edx
jmp 0x401389
cmp byte [edi + 0x59], 0
jne 0x401b7c
test al, al
mov edx, dword [esp + 0x10]
jne 0x401b83
add edi, 0x70
add ebx, 0x70
cmp edi, edx
je 0x4013c4
mov esi, dword [edi + 0x50]
mov ecx, dword [esi + 0xc]
cmp ecx, 0x57b700
je 0x40137f
mov eax, dword [esp + 0x68]
mov eax, dword [eax]
mov dword [esp + 0x18], eax
call dword [0x6445dc]
push 0
push esi
call ecx
add esp, 8
test al, al
je 0x401373
jmp 0x401369
lea ecx, [esp + 0x68]
push edi
call fcn.0050b6f0
jmp 0x401504
mov dword [esp + 0x50], edx
mov eax, dword [esp + 0x14]
mov ecx, dword [eax + 0x6c]
mov ebx, dword [eax + 0x70]
mov edi, dword [esp + 0x50]
mov eax, edi
sub eax, ecx
mov edx, ebx
sub edx, ecx
cmp eax, edx
jae 0x401445
mov edx, eax
sar edx, 4
imul edx, edx, 0xb6db6db7
add eax, 0x6c
mov esi, dword [ecx + eax - 4]
test esi, esi
je 0x401426
mov bl, byte [esi + 4]
test bl, bl
jne 0x401426
cmp dword [ecx + eax], 0
je 0x401426
mov esi, dword [ecx + eax - 4]
test esi, esi
je 0x401cf9
mov bl, byte [esi + 4]
test bl, bl
jne 0x401cf9
mov ecx, dword [ecx + eax]
mov dword [ecx + 8], 0xffffffff
inc edx
mov esi, dword [esp + 0x14]
mov ecx, dword [esi + 0x6c]
mov ebx, dword [esi + 0x70]
mov esi, ebx
sub esi, ecx
sar esi, 4
imul esi, esi, 0xb6db6db7
add eax, 0x70
cmp edx, esi
jb 0x4013f0
lea esi, [esp + 0x68]
push 0x388
push 0xff
push esi
call fcn.00582870
add esp, 0xc
mov dword [esi], 0
cmp edi, ebx
je 0x401516
xor esi, esi
mov eax, dword [esp + 0x68]
mov edx, 8
test al, 1
je 0x40147d
mov edx, dword [esp + 0x74]
mov ecx, eax
shr ecx, 1
cmp ecx, edx
je 0x4013b5
lea edx, [esp + 0x70]
test al, 1
je 0x401495
mov edx, dword [esp + 0x70]
imul eax, ecx, 0x70
add eax, edx
je 0x401cea
movups xmm0, xmmword [edi]
movups xmmword [eax], xmm0
movups xmm0, xmmword [edi + 0x10]
movups xmm1, xmmword [edi + 0x20]
movups xmmword [eax + 0x10], xmm0
movups xmmword [eax + 0x20], xmm1
movups xmm0, xmmword [edi + 0x30]
movups xmmword [eax + 0x30], xmm0
movups xmm0, xmmword [edi + 0x39]
movups xmmword [eax + 0x39], xmm0
mov ecx, dword [edi + 0x50]
mov dword [eax + 0x50], ecx
mov dword [edi + 0x50], esi
mov cl, byte [edi + 0x5a]
mov byte [eax + 0x5a], cl
movzx ecx, word [edi + 0x58]
mov word [eax + 0x58], cx
mov ecx, dword [edi + 0x5c]
mov dword [eax + 0x5c], ecx
mov dword [edi + 0x5c], esi
movq xmm0, qword [edi + 0x60]
movq qword [eax + 0x60], xmm0
mov ecx, dword [edi + 0x68]
mov dword [eax + 0x68], ecx
mov dword [edi + 0x68], esi
mov ecx, dword [edi + 0x6c]
mov dword [eax + 0x6c], ecx
add dword [esp + 0x68], 2
add edi, 0x70
cmp edi, ebx
jne 0x40146c
mov eax, dword [esp + 0x14]
mov edi, dword [eax + 0x70]
mov eax, dword [esp + 0x50]
mov esi, edi
sub esi, eax
jb 0x401cdc
jne 0x40168e
mov ebx, edi
mov esi, dword [esp + 0x14]
mov eax, dword [esp + 0x68]
cmp eax, 2
jae 0x4016c0
test eax, eax
jne 0x401d08
cmp dword [esi + 0x60], 0
je 0x401317
pcmpeqd xmm0, xmm0
movdqu xmmword [esp + 0x70], xmm0
mov eax, dword [esp + 0x38]
mov dword [esp + 0x68], eax
mov eax, dword [esp + 0x34]
mov dword [esp + 0x6c], eax
mov byte [esp + 0x70], 1
mov dword [esp + 0x78], 0
mov ecx, esi
lea eax, [esp + 0x68]
push eax
call fcn.005537a0
mov ecx, dword [esi + 0x60]
call fcn.00401f30
mov ecx, dword [esi + 0x64]
call fcn.00401f30
lea ebx, [esi + 0x14]
push ebx
call dword [sym.imp.KERNEL32.dll_TryAcquireSRWLockExclusive]
test al, al
je 0x401cfc
cmp dword [esi + 0x1c], 0
je 0x40166b
xor eax, eax
dec eax
mov dword [esp + 0x64], eax
mov dword [esp + 0x60], eax
mov ecx, dword [0x64c080]
cmp ecx, 0x56aca0
jne 0x401677
xor eax, eax
lea esi, [esp + 0x3f0]
mov dword [esi + 4], eax
mov dword [esi], eax
push esi
call dword [sym.imp.KERNEL32.dll_QueryPerformanceCounter]
mov edi, dword [esi]
mov esi, dword [esi + 4]
mov eax, 0x7bd05af6
cmp eax, edi
mov eax, 0x863
sbb eax, esi
jl 0x401d16
mov ecx, 0xf4240
mov eax, edi
mul ecx
imul ecx, esi, 0xf4240
add ecx, edx
push dword [0x64f6a4]
push dword [0x64f6a0]
push ecx
push eax
call fcn.005a13d0
mov dword [esp + 0x60], eax
mov dword [esp + 0x64], edx
mov esi, dword [esp + 0x14]
cmp eax, dword [esi + 0x28]
sbb edx, dword [esi + 0x2c]
jl 0x40166b
mov ecx, dword [esi + 0x24]
inc ecx
cmp ecx, 5
mov eax, 4
cmovae eax, ecx
mov edx, dword [esi + 0x18]
mov ecx, dword [esi + 0x20]
mov dword [esi + 0x24], ecx
test edx, edx
je 0x40166b
lea ecx, [esi + 0x18]
lea esi, [eax + 0x10]
xor edi, edi
add edi, dword [edx + 0x10]
mov edx, dword [edx + 0x14]
test edx, edx
jne 0x401655
cmp esi, edi
mov esi, dword [esp + 0x14]
jb 0x401c91
push ebx
call dword [sym.imp.KERNEL32.dll_ReleaseSRWLockExclusive]
jmp 0x401317
call dword [0x6445dc]
lea esi, [esp + 0x60]
push esi
call ecx
add esp, 4
mov eax, dword [esi]
mov edx, dword [esi + 4]
jmp 0x401625
add esi, eax
cmp esi, edi
jne 0x401dea
mov ebx, eax
mov esi, dword [esp + 0x14]
sub ebx, eax
add ebx, eax
jmp 0x4016b4
add edi, 0xffffff90
je 0x401ce3
mov ecx, edi
call fcn.00536280
cmp edi, ebx
jne 0x4016a4
mov dword [esi + 0x70], ebx
jmp 0x401530
mov eax, dword [esi + 0x6c]
mov edi, ebx
sub edi, eax
cmp edi, 0x71
jl 0x4016fc
mov dword [esp + 0x28], eax
mov eax, edi
sar eax, 4
imul eax, eax, 0xb6db6db7
mov dword [esp + 0x3c], eax
add eax, 0xfffffffe
shr eax, 1
xor ebx, ebx
dec ebx
mov dword [esp + 0x44], eax
mov edx, eax
mov dword [esp + 0x40], edi
jmp 0x401871
mov eax, dword [esi + 0x6c]
mov ebx, dword [esi + 0x70]
cmp ebx, eax
mov edi, dword [esp + 0x14]
mov ebx, dword [esp + 0x4c]
je 0x401726
xor esi, esi
mov ecx, ebx
push esi
call fcn.005aaba0
mov eax, dword [edi + 0x70]
sub eax, dword [edi + 0x6c]
inc esi
sar eax, 4
imul eax, eax, 0xb6db6db7
cmp esi, eax
jb 0x40170a
mov esi, dword [esp + 0x68]
mov eax, esi
and eax, 1
jne 0x401cc2
lea ecx, [esp + 0x70]
cmp esi, 2
jae 0x401c67
test eax, eax
mov esi, dword [esp + 0x14]
je 0x401545
jmp 0x401ccb
mov ecx, dword [esp + 0x408]
mov edx, dword [esp + 0x40c]
jmp 0x4017ed
mov esi, dword [esp + 0x20]
mov eax, dword [esp + 0x48]
mov dword [esp + 0x10], eax
xor ebx, ebx
dec ebx
lea eax, [esp + 0x60]
mov dword [esp + 0x64], ebx
mov dword [esp + 0x60], ebx
mov dword [esp + 0x20], esi
mov ecx, esi
push eax
call fcn.0050b660
cmp dword [esp + 0x418], 0
jne 0x401753
mov ebx, dword [esp + 0x414]
mov ecx, dword [esp + 0x410]
mov edx, ecx
xor eax, eax
inc eax
add edx, eax
mov edi, ebx
mov eax, 0x80000000
adc edi, eax
cmp edx, 2
mov esi, dword [esp + 0x408]
sbb edi, 0
mov edx, dword [esp + 0x40c]
jb 0x401da7
add esi, ecx
adc edx, ebx
seto bl
mov ecx, edx
sar ecx, 0x1f
lea eax, [ecx - 0x80000000]
test bl, bl
cmove ecx, esi
test bl, bl
cmove eax, edx
mov edx, eax
mov dword [esp + 0xc], edx
mov esi, dword [esp + 0x60]
mov dword [esp + 0x24], esi
mov eax, dword [esp + 0x64]
xor esi, ecx
mov ebx, eax
xor ebx, edx
mov edx, dword [esp + 0x20]
mov edx, dword [edx + 0x44]
mov dword [esp + 0x1c], edx
xor edx, edx
mov edi, dword [esp + 0x1c]
cmp edi, dword [esp + 0x434]
setg dl
cmp dword [esp + 0x24], ecx
sbb eax, dword [esp + 0xc]
setge al
or ebx, esi
movzx eax, al
cmovne edx, eax
cmp dl, 1
mov esi, dword [esp + 0x14]
mov edi, dword [esp + 0x40]
mov ebx, 0xffffffff
mov ecx, dword [esp + 0x2c]
jne 0x401a9f
lea eax, [esp + 0x3f0]
push eax
call fcn.005111a0
lea ecx, [esp + 0x3f0]
call fcn.00536280
mov edx, dword [esp + 0x18]
sub edx, 1
jb 0x4016f6
cmp edi, 0xe0
jb 0x401868
cmp dword [esp + 0x44], edx
jl 0x401868
lea ecx, [edx*2 + 1]
imul edi, ecx, 0x70
mov eax, dword [esp + 0x28]
add edi, eax
lea esi, [edx*2 + 2]
mov dword [esp + 0xc], esi
cmp esi, dword [esp + 0x3c]
mov dword [esp + 0x18], edx
mov dword [esp + 0x10], ecx
jge 0x401958
lea esi, [edi + 0x70]
mov dword [esp + 0x1c], esi
mov dword [esp + 0x3f4], ebx
mov dword [esp + 0x3f0], ebx
mov ecx, edi
lea eax, [esp + 0x3f0]
push eax
call fcn.0050b660
mov dword [esp + 0x64], ebx
mov dword [esp + 0x60], ebx
mov ecx, esi
lea eax, [esp + 0x60]
push eax
call fcn.0050b660
mov eax, dword [esp + 0x64]
mov dword [esp + 0x24], eax
mov edx, dword [esp + 0x3f4]
mov ecx, edx
xor ecx, eax
mov ebx, dword [esp + 0x60]
mov dword [esp + 0x2c], ebx
mov eax, dword [esp + 0x3f0]
mov dword [esp + 0x30], eax
xor eax, ebx
mov esi, dword [edi + 0x44]
mov dword [esp + 0x20], esi
xor ebx, ebx
mov esi, dword [esp + 0x20]
cmp esi, dword [edi + 0xb4]
setg bl
mov esi, dword [esp + 0x30]
cmp esi, dword [esp + 0x2c]
sbb edx, dword [esp + 0x24]
setge dl
or eax, ecx
movzx eax, dl
mov edx, dword [esp + 0x18]
cmove eax, ebx
xor ebx, ebx
dec ebx
test al, al
mov eax, dword [esp + 0x28]
cmovne edi, dword [esp + 0x1c]
mov ecx, dword [esp + 0x10]
cmovne ecx, dword [esp + 0xc]
mov dword [esp + 0x10], ecx
imul esi, edx, 0x70
add esi, eax
mov dword [esp + 0x3f4], ebx
mov dword [esp + 0x3f0], ebx
mov ecx, edi
lea eax, [esp + 0x3f0]
push eax
call fcn.0050b660
mov dword [esp + 0x64], ebx
mov dword [esp + 0x60], ebx
mov ecx, esi
lea eax, [esp + 0x60]
push eax
call fcn.0050b660
mov eax, dword [esp + 0x60]
mov dword [esp + 0xc], eax
mov ebx, dword [esp + 0x64]
mov dword [esp + 0x1c], ebx
mov eax, dword [esp + 0x3f0]
mov ecx, dword [esp + 0x3f4]
mov edx, edi
mov edi, ecx
xor edi, ebx
mov ebx, eax
xor ebx, dword [esp + 0xc]
mov dword [esp + 0x20], edx
mov edx, dword [edx + 0x44]
mov dword [esp + 0x24], edx
mov dword [esp + 0x2c], esi
mov edx, dword [esp + 0x24]
cmp edx, dword [esi + 0x44]
mov edx, 0
setg dl
cmp eax, dword [esp + 0xc]
sbb ecx, dword [esp + 0x1c]
setge al
or ebx, edi
mov ebx, 0xffffffff
movzx eax, al
cmove eax, edx
mov edx, dword [esp + 0x18]
test al, al
mov esi, dword [esp + 0x14]
mov edi, dword [esp + 0x40]
jne 0x401868
mov edx, dword [esp + 0x2c]
movdqu xmm0, xmmword [edx]
movdqa xmmword [esp + 0x3f0], xmm0
lea ecx, [esp + 0x400]
pcmpeqd xmm0, xmm0
movdqu xmmword [ecx + 0x39], xmm0
mov dword [ecx + 0x48], 0xffffffff
movups xmm0, xmmword [edx + 0x39]
movups xmmword [ecx + 0x29], xmm0
movups xmm0, xmmword [edx + 0x30]
movups xmmword [ecx + 0x20], xmm0
movups xmm0, xmmword [edx + 0x10]
movups xmm1, xmmword [edx + 0x20]
movups xmmword [ecx + 0x10], xmm1
movups xmmword [ecx], xmm0
mov eax, dword [edx + 0x50]
mov dword [esp + 0x440], eax
mov eax, 0
mov dword [edx + 0x50], eax
mov al, byte [edx + 0x5a]
mov byte [ecx + 0x4a], al
movzx eax, word [edx + 0x58]
mov word [ecx + 0x48], ax
mov eax, dword [edx + 0x5c]
mov dword [esp + 0x44c], eax
xor ecx, ecx
mov dword [edx + 0x5c], ecx
movq xmm0, qword [edx + 0x60]
movq qword [esp + 0x450], xmm0
mov eax, dword [edx + 0x68]
mov dword [esp + 0x458], eax
mov dword [edx + 0x68], ecx
mov eax, dword [edx + 0x6c]
mov dword [esp + 0x45c], eax
mov ecx, edx
mov eax, dword [esp + 0x20]
mov dword [esp + 0x2c], eax
push eax
call fcn.005111a0
mov ecx, dword [esp + 0x2c]
mov eax, dword [esp + 0x10]
cmp dword [esp + 0x44], eax
jl 0x40184b
mov eax, dword [esp + 0x10]
lea ecx, [eax*2 + 1]
imul esi, ecx, 0x70
add esi, dword [esp + 0x28]
lea eax, [eax*2 + 2]
cmp eax, dword [esp + 0x3c]
jge 0x401c5e
mov dword [esp + 0x48], ecx
mov dword [esp + 0x10], eax
lea edi, [esi + 0x70]
mov dword [esp + 0x1c], edi
mov dword [esp + 0x64], ebx
mov dword [esp + 0x60], ebx
mov ecx, esi
lea eax, [esp + 0x60]
push eax
call fcn.0050b660
mov dword [esp + 0x5c], ebx
mov dword [esp + 0x58], ebx
mov ecx, edi
lea eax, [esp + 0x58]
push eax
call fcn.0050b660
mov eax, dword [esp + 0x58]
mov dword [esp + 0xc], eax
mov edx, dword [esp + 0x5c]
mov dword [esp + 0x24], edx
mov edi, dword [esp + 0x60]
mov ecx, dword [esp + 0x64]
mov eax, ecx
xor eax, edx
mov ebx, edi
xor ebx, dword [esp + 0xc]
mov edx, dword [esi + 0x44]
mov dword [esp + 0x30], edx
mov dword [esp + 0x20], esi
mov edx, dword [esp + 0x30]
cmp edx, dword [esi + 0xb4]
mov edx, 0
setg dl
cmp edi, dword [esp + 0xc]
sbb ecx, dword [esp + 0x24]
mov esi, dword [esp + 0x1c]
setge cl
or ebx, eax
movzx eax, cl
cmove eax, edx
test al, al
jne 0x401772
jmp 0x401766
mov eax, dword [esp + 0x18]
dec dword [eax + 0x10]
mov eax, dword [esp + 0xc]
cmp edi, eax
je 0x401be5
mov edx, eax
sub edx, ebx
mov dword [esp + 0xc], eax
mov esi, dword [eax + 0x50]
mov ecx, dword [esi + 0xc]
cmp ecx, 0x57b700
je 0x401bee
mov dword [esp + 0x10], edx
mov eax, dword [esp + 0x68]
mov eax, dword [eax]
mov dword [esp + 0x18], eax
call dword [0x6445dc]
push 0
push esi
call ecx
add esp, 8
test al, al
je 0x401bcf
mov ecx, dword [esp + 0xc]
cmp byte [ecx + 0x59], 0
jne 0x401e12
test al, al
mov edx, dword [esp + 0x10]
je 0x401bee
mov eax, dword [esp + 0xc]
add eax, 0xffffff90
add edx, 0xffffff90
cmp edi, eax
jne 0x401b8f
mov dword [esp + 0x50], ebx
jmp 0x4013c8
mov eax, edx
sar eax, 4
imul ebx, eax, 0xb6db6db7
inc ebx
cmp edx, 0xe1
jl 0x401e35
mov esi, 0x1249249
cmp ebx, 0x1249249
cmovl esi, ebx
mov dword [esp + 0x10], ebx
imul eax, esi, 0x70
push 0x62ac20
push eax
call fcn.00510d00
add esp, 8
test eax, eax
je 0x401e22
mov ebx, eax
lea eax, [esp + 0x68]
lea ecx, [esp + 0x50]
mov edx, edi
push esi
push ebx
push dword [esp + 0x18]
push eax
push dword [esp + 0x1c]
call fcn.00403250
add esp, 0x14
push ebx
call fcn.0057dc2b
add esp, 4
jmp 0x4013c8
mov dword [esp + 0x10], ecx
jmp 0x401775
shr esi, 1
imul eax, esi, 0x70
lea edi, [eax + ecx]
add edi, 0xffffff90
test edi, edi
je 0x401ce3
dec esi
mov ecx, edi
call fcn.00536280
add edi, 0xffffff90
test esi, esi
jne 0x401c72
mov eax, dword [esp + 0x68]
and eax, 1
jmp 0x401742
push eax
call fcn.005289c0
mov eax, dword [esp + 0x64]
mov ecx, 0x4c4b40
add ecx, dword [esp + 0x60]
adc eax, 0
mov edx, 0x7fffffff
cmovno edx, eax
mov eax, 0xffffffff
cmovo ecx, eax
mov dword [esi + 0x28], ecx
mov dword [esi + 0x2c], edx
jmp 0x40166b
mov ecx, dword [esp + 0x70]
jmp 0x401739
push dword [esp + 0x70]
call fcn.0057dc2b
add esp, 4
jmp 0x401545
push str....._third_partylibc_srcinclude_vector:1557:_assertion___first_____last_failed:_vector::erase_first__last__called_with_invalid_range_n
jmp 0x401cef
push str....._third_partylibc_srcinclude__memoryconstruct_at.h:66:_assertion___loc___nullptr_failed:_null_pointer_given_to_destroy_at_n
jmp 0x401cef
push str....._third_partylibc_srcinclude__memoryconstruct_at.h:40:_assertion___location___nullptr_failed:_null_pointer_given_to_construct_at_n
push 0x62a183
call fcn.005aacb0
int3
push ebx
call dword [sym.imp.KERNEL32.dll_AcquireSRWLockExclusive]
jmp 0x4015a4
lea ecx, [esp + 0x68]
call fcn.0050ae50
jmp 0x401545
mov eax, dword [0x64f6a0]
mov dword [esp + 0x10], eax
mov ecx, dword [0x64f6a4]
mov dword [esp + 0x18], ecx
push ecx
push eax
push esi
push edi
call fcn.005a13d0
mov dword [esp + 0xc], eax
mov dword [esp + 0x34], edx
mul dword [esp + 0x10]
mov dword [esp + 0x38], eax
mov ecx, dword [esp + 0xc]
imul ecx, dword [esp + 0x18]
add edx, ecx
mov eax, dword [esp + 0x34]
imul ecx, eax, 0xf4240
mov dword [esp + 0x28], ecx
imul eax, dword [esp + 0x10]
add eax, edx
sub edi, dword [esp + 0x38]
sbb esi, eax
mov ecx, 0xf4240
mov eax, dword [esp + 0xc]
mul ecx
mov dword [esp + 0xc], eax
add edx, dword [esp + 0x28]
mov dword [esp + 0x28], edx
mov eax, edi
mul ecx
imul ecx, esi, 0xf4240
add edx, ecx
push dword [esp + 0x18]
push dword [esp + 0x14]
push edx
push eax
call fcn.005a13d0
add eax, dword [esp + 0xc]
adc edx, dword [esp + 0x28]
jmp 0x40161d
mov edi, ebx
mov ebx, esi
xor eax, eax
inc eax
add ebx, eax
mov dword [esp + 0x1c], ebx
mov ebx, edx
mov eax, 0x80000000
adc ebx, eax
xor esi, ecx
mov dword [esp + 0xc], edi
xor edx, edi
or edx, esi
jne 0x401dd2
mov edx, dword [esp + 0xc]
jmp 0x4017ed
xor edx, edx
xor eax, eax
inc eax
cmp eax, dword [esp + 0x1c]
sbb edx, ebx
mov edx, dword [esp + 0xc]
jb 0x4017ed
int3
mov dword [esp + 0x10], eax
mov ebx, eax
mov ecx, ebx
push esi
call fcn.005111a0
add esi, 0x70
add ebx, 0x70
cmp esi, edi
jne 0x401df0
mov esi, dword [esp + 0x14]
mov edi, dword [esi + 0x70]
mov eax, dword [esp + 0x10]
jmp 0x40169e
mov eax, dword [esp + 0x18]
dec dword [eax + 0x10]
mov edx, dword [esp + 0x10]
jmp 0x401bd7
mov eax, esi
shr eax, 1
cmp esi, 1
mov esi, eax
mov ebx, dword [esp + 0x10]
ja 0x401c18
xor eax, eax
lea esi, [esp + 0x68]
lea ecx, [esp + 0x50]
mov edx, edi
push eax
push eax
push ebx
push esi
push dword [esp + 0x1c]
call fcn.00403250
add esp, 0x14
jmp 0x4013c8