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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
push 0xffffffffffffffff
push 0x10080b30
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x160
push ebx
xor ebx, ebx
mov dword [esp + 0x94], edx
mov dword [esp + 8], ebx
push esi
mov byte [esp + 0x13], bl
push edi
mov edi, dword [sym.imp.USER32.dll_GetDesktopWindow]
mov dword [esp + 0x60], ecx
cmp byte [esp + 0x17], bl
je 0x1001853a
call edi
push eax
call dword [sym.imp.USER32.dll_GetDC]
push eax
call edi
push eax
call dword [sym.imp.USER32.dll_ReleaseDC]
push 1
mov dword [esp + 0x14], 0x1a
pop eax
jmp 0x10018555
mov dword [esp + 0x28], eax
cmp dword [esp + 0x28], ebx
jne 0x1001855c
dec dword [esp + 0x10]
cmp dword [esp + 0x10], 0xe
jge 0x10018547
mov dword [esp + 0x28], 0x81ce
lea ecx, [esp + 0x12c]
mov dword [esp + 0x38], 0xffffffff
mov dword [esp + 0x30], 5
mov dword [esp + 0x18], eax
mov dword [esp + 0x24], 0xd6a5
mov dword [esp + 0x38], 0x7507af9c
push eax
call fcn.10016697
mov dword [esp + 0x174], ebx
mov dword [esp + 0x1c], 0xfffffffc
mov dword [esp + 0x10], ebx
jmp 0x100185c0
mov ecx, dword [esp + 0x10]
mov eax, dword [esp + 0x12c]
mov dword [eax + ecx*4], 0xfffffffa
inc dword [esp + 0x10]
cmp dword [esp + 0x10], 1
jl 0x100185aa
mov eax, dword [esp + 0x28]
inc eax
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x24]
cmp dword [esp + 0x18], eax
je 0x100185fb
cmp dword [esp + 0x30], ebx
je 0x100185fb
mov byte [esp + 0x17], bl
cmp byte [esp + 0x17], 0
je 0x10018670
push ebx
call edi
push eax
call dword [sym.imp.USER32.dll_EndDialog]
jmp 0x10018670
push 1
lea ecx, [esp + 0x114]
call fcn.10016697
mov dword [esp + 0x38], 0xfffffffb
mov dword [esp + 0x38], 0x88a01932
mov dword [esp + 0x38], 0x35b68906
mov dword [esp + 0xc], ebx
jmp 0x10018639
mov ecx, dword [esp + 0xc]
mov eax, dword [esp + 0x110]
mov dword [eax + ecx*4], ebx
inc dword [esp + 0xc]
cmp dword [esp + 0xc], 1
jl 0x10018627
mov dword [esp + 0xc], ebx
jmp 0x10018659
mov eax, dword [esp + 0xc]
mov dword [esp + eax*4 + 0x160], 0xa5616d21
inc dword [esp + 0xc]
cmp dword [esp + 0xc], 2
jl 0x10018646
inc dword [esp + 0x1c]
lea ecx, [esp + 0x110]
call fcn.1001671c
or dword [esp + 0x174], 0xffffffff
lea ecx, [esp + 0x12c]
call fcn.1001671c
push 3
lea ecx, [esp + 0xe8]
call fcn.10016697
push 3
mov dword [esp + 0x10], ebx
pop edx
jmp 0x100186a7
mov eax, dword [esp + 0xc]
mov dword [esp + eax*4 + 0x48], ebx
inc dword [esp + 0xc]
cmp dword [esp + 0xc], edx
jl 0x1001869b
mov dword [esp + 0xc], ebx
jmp 0x100186c9
mov ecx, dword [esp + 0xc]
mov eax, dword [esp + 0xe4]
mov dword [eax + ecx*4], 0x50faeb38
inc dword [esp + 0xc]
cmp dword [esp + 0xc], edx
jl 0x100186b3
mov dword [esp + 0x48], 0xffffffe2
cmp dword [esp + 0x48], 8
jne 0x10018770
mov esi, dword [esp + 0xe4]
mov dword [esp + 0x18], 0x7b1891f7
mov dword [esp + 0x1c], 0xfffffff6
mov dword [esp + 0x28], 0xfffffff9
mov eax, dword [esp + 0x18]
mov dword [esp + 0x1c], eax
mov eax, dword [esp + 0x48]
cmp dword [esp + 0x4c], ebx
jne 0x1001871d
cmp dword [esp + 0x1c], ebx
jne 0x1001871d
mov eax, ebx
jmp 0x10018720
xor eax, eax
inc eax
cmp eax, dword [esp + 0x48]
jge 0x1001872a
mov eax, dword [esp + 0x48]
mov eax, dword [esp + 0x48]
xor edx, edx
mov ecx, dword [esp + 0x48]
imul ecx, dword [esi + 8]
mov eax, dword [esp + 0x18]
cmp ecx, eax
mov eax, dword [esp + 0x18]
setl dl
sub edx, dword [esi + 8]
neg edx
sbb edx, edx
xor ecx, ecx
inc edx
add eax, edx
cmp eax, 0xfffffffe
setle cl
add ecx, 0xfa1
mov dword [esp + 0x28], ecx
inc dword [esp + 0x48]
cmp dword [esp + 0x48], 8
je 0x100186e9
mov byte [esp + 0x17], bl
cmp byte [esp + 0x17], 0
je 0x10018792
push 0x25d0
push 0x1d6e
push ebx
push ebx
push 0x1165
call dword [sym.imp.USER32.dll_MsgWaitForMultipleObjects]
lea ecx, [esp + 0xe4]
call fcn.1001671c
mov dword [esp + 0x64], ebx
lea ecx, [esp + 0xa4]
mov dword [esp + 0x24], 0xfffffffd
mov dword [esp + 0x20], ebx
push 2
call fcn.10016697
xor edx, edx
mov dword [esp + 0xc], ebx
inc edx
jmp 0x100187d5
mov eax, dword [esp + 0xc]
mov dword [esp + eax*4 + 0x3c], 0xcad2086b
inc dword [esp + 0xc]
cmp dword [esp + 0xc], edx
jl 0x100187c5
mov dword [esp + 0xc], ebx
jmp 0x100187f3
mov ecx, dword [esp + 0xc]
mov eax, dword [esp + 0xa4]
mov dword [eax + ecx*4], edx
inc dword [esp + 0xc]
cmp dword [esp + 0xc], 2
jl 0x100187e1
mov eax, dword [esp + 0x3c]
mov eax, dword [esp + 0x3c]
mov eax, dword [esp + 0x3c]
imul eax, dword [esp + 0x20]
cmp eax, 0xffffffff
jne 0x10018818
mov eax, ebx
cmp dword [esp + 0x20], ebx
je 0x1001881a
mov eax, edx
mov dword [esp + 0x24], 0xfffffff8
mov dword [esp + 0x20], eax
mov eax, dword [esp + 0x3c]
add eax, dword [esp + 0x20]
mov edx, dword [esp + 0x24]
neg eax
sub edx, eax
neg edx
push 3
sbb edx, edx
xor ecx, ecx
inc edx
cmp edx, 5
pop esi
setg cl
xor edx, edx
sub ecx, dword [esp + 0x3c]
mov eax, dword [esp + 0x3c]
add ecx, 0x4325
cmp ecx, eax
mov eax, dword [esp + 0x3c]
setne dl
imul eax, edx
imul ecx, eax, 0xd52a
mov eax, dword [esp + 0xa4]
mov dword [eax], ecx
mov dword [esp + 0x20], 0xfffffff0
jmp 0x100189b4
mov dword [esp + 0x18], 0xfffffffb
mov dword [esp + 0x24], ebx
jmp 0x1001899d
xor eax, eax
inc eax
mov dword [esp + 0xc], eax
mov dword [esp + 0x1c], 0xc32c7527
mov dword [esp + 0xc], ebx
cmp dword [esp + 0xc], ebx
jl 0x1001897e
mov dword [esp + 0x10], eax
mov dword [esp + 0x10], ebx
jmp 0x1001896a
mov dword [esp + 0x28], 0xea1dc7e9
xor edx, edx
mov eax, dword [esp + 0xc]
mov eax, dword [esp + eax*4 + 0x3c]
cmp eax, 4
mov eax, dword [esp + 0x10]
setg dl
xor ecx, ecx
cmp edx, eax
setge cl
xor eax, eax
cmp ecx, 0xffffffff
setle al
dec eax
jne 0x100188eb
mov eax, dword [esp + 0xc]
mov eax, dword [esp + 0xc]
mov eax, dword [esp + 0xc]
mov eax, dword [esp + eax*4 + 0x3c]
mov eax, dword [esp + 0x3c]
cmp dword [esp + 0x18], 0xffff
ja 0x1001890f
cmp dword [esp + 0x24], ebx
jne 0x1001890f
mov edx, ebx
jmp 0x10018912
xor edx, edx
inc edx
mov ecx, dword [esp + 0x10]
mov eax, dword [esp + 0xa4]
mov dword [eax + ecx*4], edx
xor ecx, ecx
mov eax, dword [esp + 0xc]
mov eax, dword [esp + eax*4 + 0x3c]
cmp eax, edx
setne cl
mov dword [esp + 0x1c], ecx
xor ecx, ecx
mov eax, dword [esp + 0x1c]
mov dword [esp + 0x28], eax
mov eax, dword [esp + 0x3c]
cmp ecx, eax
sbb eax, eax
neg eax
cmp eax, 0xad33
mov eax, dword [esp + 0xa4]
setge cl
xor edx, edx
cmp ecx, 0xbf2fea27
setne dl
mov dword [eax], edx
xor eax, eax
inc dword [esp + 0x10]
inc eax
cmp dword [esp + 0x10], eax
jle 0x100188b9
dec dword [esp + 0xc]
jns 0x100188ac
mov byte [esp + 0x17], bl
cmp byte [esp + 0x17], 0
je 0x10018999
push eax
push ebx
push 0x1d23
call edi
push eax
call dword [sym.imp.USER32.dll_SetScrollInfo]
inc dword [esp + 0x24]
cmp dword [esp + 0x24], 0x17
jne 0x1001888f
mov eax, dword [esp + 0x18]
mov dword [esp + 0x18], eax
inc dword [esp + 0x20]
cmp dword [esp + 0x20], esi
je 0x1001887e
lea ecx, [esp + 0xa4]
call fcn.1001671c
push esi
lea ecx, [esp + 0x58]
call fcn.10016697
mov dword [esp + 0x174], 1
mov dword [esp + 0x10], 0x9b3198a8
mov dword [esp + 0x10], ebx
jmp 0x10018a00
mov eax, dword [esp + 0x10]
mov dword [esp + eax*4 + 0x154], 0xffffffff
inc dword [esp + 0x10]
cmp dword [esp + 0x10], esi
jl 0x100189ed
mov dword [esp + 0x10], ebx
jmp 0x10018a7b
push dword [esp + 0x60]
lea eax, [esp + 0x14c]
mov dword [esp + 0x7c], ebx
push eax
lea eax, [esp + 0x140]
mov dword [esp + 0x84], ebx
push eax
xorps xmm0, xmm0
mov dword [esp + 0x8c], ebx
push ebx
lea ecx, [esp + 0x88]
movdqu xmmword [esp + 0x148], xmm0
call fcn.10017beb
cmp dword [esp + 0x10], ebx
jne 0x10018a84
mov ecx, dword [esp + 0x78]
mov dword [ecx + 4], ebx
mov eax, dword [ecx + 4]
inc dword [ecx + 4]
mov dword [esp + eax*4 + 0x154], 0x6f6dd8d1
cmp dword [ecx + 4], esi
jl 0x10018a58
lea ecx, [esp + 0x78]
call fcn.1001671c
dec dword [esp + 0x10]
cmp dword [esp + 0x10], 0xfffffff3
jne 0x10018a0c
jmp 0x10018a8d
lea ecx, [esp + 0x78]
call fcn.1001671c
mov dword [esp + 0x2c], 0xfffffff6
lea ecx, [esp + 0x90]
mov dword [esp + 0xc], 0xade2167
mov dword [esp + 0x10], 0x335c0de4
mov dword [esp + 0x18], 0xeb64d07d
mov dword [esp + 0x30], 0x3d97867a
mov dword [esp + 0x24], 0x8bbe26b5
push esi
call fcn.10016697
mov dword [esp + 0x1c], 1
mov dword [esp + 0x10], ebx
jmp 0x10018aee
mov ecx, dword [esp + 0x10]
mov eax, dword [esp + 0x90]
mov dword [eax + ecx*4], 0xfffffffa
inc dword [esp + 0x10]
cmp dword [esp + 0x10], 3
jl 0x10018ad8
cmp dword [esp + 0xc], ebx
jne 0x10018aff
mov edx, ebx
jmp 0x10018b02
xor edx, edx
inc edx
mov eax, dword [esp + 0xc]
xor ecx, ecx
cmp eax, edx
setge cl
xor eax, eax
add ecx, 0xbe85
cmp ecx, 0xb996
setl al
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x10]
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x18]
mov eax, dword [esp + 0xc]
mov eax, dword [esp + 0xc]
mov eax, dword [esp + 0xc]
mov eax, dword [esp + 0x10]
mov eax, dword [esp + 0xc]
mov eax, dword [esp + 0xc]
cmp dword [esp + 0x18], ebx
jne 0x10018b56
cmp dword [esp + 0x10], ebx
jne 0x10018b56
mov edx, ebx
jmp 0x10018b59
xor edx, edx
inc edx
mov eax, dword [esp + 0xc]
xor ecx, ecx
cmp eax, edx
setg cl
xor eax, eax
cmp ecx, 0xffffffff
setl al
xor edx, edx
mov dword [esp + 0x30], eax
mov eax, dword [esp + 0x30]
mov dword [esp + 0x24], eax
mov ecx, dword [esp + 0x24]
mov eax, dword [esp + 0x90]
mov dword [eax], ecx
mov eax, dword [esp + 0x18]
mov eax, dword [esp + 0x10]
mov eax, dword [esp + 0x1c]
inc dword [esp + 0x1c]
mov ecx, dword [esp + 0x24]
mov eax, dword [esp + 0x90]
mov esi, dword [esp + 0x90]
imul ecx, dword [eax]
mov eax, dword [esp + 0x30]
cmp ecx, dword [esi + 4]
lea ecx, [esp + 0x90]
setne dl
sub edx, eax
mov dword [esi + 4], edx
call fcn.1001671c
mov dword [esp + 0xc], ebx
jmp 0x10018be0
mov ecx, dword [esp + 0xc]
mov eax, dword [esp + 0x54]
mov dword [eax + ecx*4], 1
inc dword [esp + 0xc]
cmp dword [esp + 0xc], 3
jl 0x10018bcd
mov dword [esp + 0x18], ebx
mov dword [esp + 0x18], 0x68819570
cmp dword [esp + 0x18], ebx
je 0x10018bfd
mov eax, dword [esp + 0x18]
mov edx, dword [esp + 0x18]
mov eax, dword [esp + 0x18]
sub edx, 7
neg edx
mov dword [esp + 0x18], 0x57e8b72f
sbb edx, edx
xor ecx, ecx
inc edx
cmp eax, edx
mov eax, dword [esp + 0x18]
mov byte [esp + 0x17], bl
setl cl
add ecx, 5
neg ecx
sbb ecx, ecx
xor edx, edx
neg ecx
cmp ecx, 9
sete dl
xor ecx, ecx
cmp eax, edx
setg cl
add ecx, 7
cmp ecx, 4
jl 0x10018c55
cmp byte [esp + 0x17], 0
je 0x10018c66
push ebx
push ebx
call dword [sym.imp.KERNEL32.dll_lstrcpyW]
jmp 0x10018c66
cmp byte [esp + 0x17], 0
je 0x10018c66
push ebx
call edi
push eax
call dword [sym.imp.USER32.dll_GetWindowRect]
mov dword [esp + 0xc], ebx
jmp 0x10018c7c
mov eax, dword [esp + 0xc]
mov dword [esp + eax*4 + 0x40], 0xda7da9fc
inc dword [esp + 0xc]
cmp dword [esp + 0xc], 1
jl 0x10018c6c
push 1
lea ecx, [esp + 0xb4]
call fcn.10016697
push 2
mov dword [esp + 0x10], ebx
pop esi
jmp 0x10018cad
mov eax, dword [esp + 0xc]
mov dword [esp + eax*4 + 0xfc], 0xf9b3
inc dword [esp + 0xc]
cmp dword [esp + 0xc], esi
jl 0x10018c9a
xor edx, edx
mov dword [esp + 0xc], ebx
inc edx
jmp 0x10018ccf
mov ecx, dword [esp + 0xc]
mov eax, dword [esp + 0xb0]
or dword [eax + ecx*4], 0xffffffff
inc dword [esp + 0xc]
cmp dword [esp + 0xc], edx
jl 0x10018cbc
mov eax, dword [esp + 0xb0]
mov dword [eax], edx
mov dword [esp + 0x10], 0xfffffffe
mov dword [esp + 0x10], ebx
jmp 0x10018cff
mov eax, dword [esp + 0x10]
mov dword [esp + eax*4 + 0xfc], 0xffffffff
inc dword [esp + 0x10]
cmp dword [esp + 0x10], esi
jl 0x10018cec
mov eax, dword [esp + 0xb0]
dec dword [eax]
jns 0x10018cde
lea ecx, [esp + 0xb0]
call fcn.1001671c
mov ecx, dword [esp + 0x64]
mov eax, dword [esp + 0x54]
neg ecx
sbb ecx, ecx
neg ecx
mov dword [eax], ecx
mov eax, dword [esp + 0x64]
mov eax, dword [esp + 0x2c]
mov eax, dword [esp + 0x2c]
mov dword [esp + 0x10], ebx
jmp 0x10018d4d
mov eax, dword [esp + 0x10]
mov dword [esp + eax*4 + 0x11c], ebx
inc dword [esp + 0x10]
cmp dword [esp + 0x10], 3
jl 0x10018d3e
inc dword [esp + 0x124]
mov byte [esp + 0x17], bl
cmp byte [esp + 0x17], 0
je 0x10018d76
push ebx
push ebx
push 0x24fd
call edi
push eax
call dword [sym.imp.USER32.dll_SendMessageW]
xor ecx, ecx
mov dword [esp + 0x20], 8
inc ecx
mov dword [esp + 0x1c], ecx
mov dword [esp + 0xc], 0xcea5d6c0
mov dword [esp + 0x10], ebx
jmp 0x10018da3
mov eax, dword [esp + 0x10]
mov dword [esp + eax*4 + 0x44], 0xffffffff
inc dword [esp + 0x10]
cmp dword [esp + 0x10], ecx
jl 0x10018d93
mov dword [esp + 0xc], 0xfffffff1
jmp 0x10018dcf
mov byte [esp + 0x17], bl
cmp byte [esp + 0x17], 0
je 0x10018dcb
push ebx
push 0x1051
push ebx
call dword [sym.imp.OLEAUT32.dll_SafeArrayLock]
dec dword [esp + 0xc]
cmp dword [esp + 0xc], 0xfffffff0
jge 0x10018db3
mov dword [esp + 0xc], ebx
jmp 0x10018e70
mov dword [esp + 0x18], 0xfffffff8
mov eax, dword [esp + 0xc]
cmp dword [esp + eax*4 + 0x44], ebx
jne 0x10018e32
mov ecx, dword [esp + 0x18]
xor edx, edx
mov eax, dword [esp + 0x44]
cmp ecx, eax
mov eax, dword [esp + 0x18]
setle dl
imul eax, dword [esp + 0x18]
xor ecx, ecx
mov dword [esp + 0x28], edx
cmp eax, 0xa9b27fa
mov eax, dword [esp + 0xc]
setne cl
imul edx, ecx, 0x5bef
xor ecx, ecx
cmp eax, dword [esp + 0x28]
setne cl
cmp ecx, edx
jge 0x10018e32
mov edx, ebx
jmp 0x10018e35
xor edx, edx
inc edx
mov eax, dword [esp + 0xc]
xor ecx, ecx
mov eax, dword [esp + eax*4 + 0x44]
cmp edx, eax
setge cl
cmp ecx, 0xfffa
jb 0x10018e66
mov dword [esp + 0x28], 0xd271
mov dword [esp + 0x18], 0x9ee491ba
mov eax, dword [esp + 0x28]
mov dword [esp + 0x18], eax
jmp 0x10018e6c
cmp dword [esp + 0x44], ebx
jne 0x10018e7a
inc dword [esp + 0xc]
cmp dword [esp + 0xc], ebx
jle 0x10018ddf
mov dword [esp + 0x18], 0x879b6842
lea ecx, [esp + 0x84]
mov dword [esp + 0x24], ebx
mov dword [esp + 0x30], ebx
push esi
call fcn.10016697
mov byte [esp + 0x174], 3
mov eax, 0x88307b36
mov dword [esp + 0x10], 0x2bf5f40e
mov dword [esp + 0xbc], eax
mov dword [esp + 0xc0], eax
mov dword [esp + 0xc4], eax
mov dword [esp + 0xc8], eax
mov dword [esp + 0xc], 0xfffffffd
mov dword [esp + 0xc], 0xdd754719
mov dword [esp + 0x10], ebx
jmp 0x10018ef4
mov ecx, dword [esp + 0x10]
mov eax, dword [esp + 0x84]
mov dword [eax + ecx*4], 0x725245f5
inc dword [esp + 0x10]
cmp dword [esp + 0x10], esi
jl 0x10018ede
cmp dword [esp + 0x24], ebx
jne 0x10018f47
mov esi, dword [esp + 0x84]
xor edx, edx
mov dword [esp + 0x30], 0xffffffff
mov eax, dword [esp + 0x30]
cmp dword [esi + 4], 1
setg dl
xor ecx, ecx
sub edx, dword [esi + 4]
cmp eax, edx
setl cl
cmp ecx, dword [esi + 4]
jge 0x10018f2f
mov eax, dword [esp + 0x30]
mov eax, dword [esp + 0x84]
mov ecx, 0x3fa973d2
sub ecx, dword [eax]
cmp ecx, dword [esp + 0x24]
jg 0x10018f47
mov eax, ebx
jmp 0x10018f4a
xor eax, eax
inc eax
mov dword [esp + 0x10], eax
mov dword [esp + 0x24], 1
cmp dword [esp + 0x24], ebx
jl 0x100191c6
mov dword [esp + 0x38], 0x757520c2
mov dword [esp + 0x30], ebx
jmp 0x100191b1
mov dword [esp + 0x1c], 0x2089ce37
mov dword [esp + 0xc], 0x2edfd682
mov dword [esp + 0xc], 0xdfba308d
mov dword [esp + 0xc], ebx
jmp 0x10018fa2
mov eax, dword [esp + 0xc]
mov dword [esp + eax*4 + 0x104], 0x3f0b
inc dword [esp + 0xc]
cmp dword [esp + 0xc], 3
jl 0x10018f8f
mov dword [esp + 0xc], ebx
jmp 0x10018fbe
mov eax, dword [esp + 0xc]
mov dword [esp + eax*4 + 0xa0], ebx
inc dword [esp + 0xc]
cmp dword [esp + 0xc], 1
jl 0x10018faf
mov byte [esp + 0x17], bl
cmp byte [esp + 0x17], 0
je 0x10018fe3
push ebx
push ebx
push 0x26c
push 0x17d3
push ebx
call dword [sym.imp.USER32.dll_InsertMenuA]
mov dword [esp + 0x10], ebx
jmp 0x100191a2
mov dword [esp + 0x34], 2
mov dword [esp + 0x28], 0xd8169b41
mov dword [esp + 0x34], ebx
jmp 0x10019011
mov eax, dword [esp + 0x34]
mov dword [esp + eax*4 + 0x148], ebx
inc dword [esp + 0x34]
cmp dword [esp + 0x34], 3
jl 0x10019002
mov dword [esp + 0x34], ebx
jmp 0x10019193
push 3
lea ecx, [esp + 0xd0]
call fcn.10016697
xor edx, edx
mov dword [esp + 0xc], ebx
inc edx
cmp dword [esp + 0xc], edx
jge 0x10019051
push 3
pop esi
mov eax, dword [esp + 0xc]
mov dword [esp + eax*4 + 0x68], esi
inc dword [esp + 0xc]
cmp dword [esp + 0xc], edx
jl 0x1001903f
mov dword [esp + 0xc], ebx
jmp 0x1001906d
mov ecx, dword [esp + 0xc]
mov eax, dword [esp + 0xcc]
mov dword [eax + ecx*4], 0x1ddbc75b
inc dword [esp + 0xc]
cmp dword [esp + 0xc], 3
jl 0x10019057
dec dword [esp + 0x10c]
mov eax, dword [esp + 0x28]
mov dword [esp + 0x148], ebx
mov eax, dword [esp + 0x1c]
mov dword [esp + 0xc], eax
cmp dword [esp + 0xc], ebx
je 0x1001909c
mov ecx, edx
cmp dword [esp + 0x28], ebx
jne 0x1001909e
mov ecx, ebx
xor eax, eax
cmp ecx, 0xffffffff
setl al
cmp eax, dword [esp + 0x10]
je 0x100190b4
mov eax, ebx
cmp dword [esp + 0x34], ebx
je 0x100190b6
mov eax, edx
mov esi, dword [esp + 0xcc]
xor edx, edx
cmp eax, dword [esi + 8]
mov eax, dword [esp + 0x1c]
setg dl
xor ecx, ecx
cmp eax, edx
setne cl
mov dword [esi + 8], ecx
cmp ecx, dword [esp + 0x1c]
jg 0x100190e0
mov eax, dword [esp + 0xc8]
mov dword [esp + 0xc8], ebx
xor edx, edx
mov ecx, dword [esp + 0x68]
mov eax, dword [esp + 0x34]
cmp eax, ecx
setl dl
mov dword [esp + 0x1c], edx
mov edi, dword [esp + 0x1c]
mov esi, dword [esp + 0x30]
neg edi
mov ecx, dword [esp + 0x10]
mov edx, dword [esp + 0x84]
sbb edi, edi
mov eax, dword [esp + 0x84]
neg edi
neg edi
neg edi
mov eax, dword [eax + ecx*4]
sbb edi, edi
mov dword [edx + esi*4], eax
neg edi
mov dword [esp + 0xc], eax
xor edx, edx
mov ecx, dword [esp + 0xc]
mov eax, dword [esp + 0x24]
sub ecx, edi
cmp ecx, eax
mov eax, dword [esp + 0x34]
setne dl
xor ecx, ecx
cmp edx, eax
setl cl
mov dword [esp + 0xc], ecx
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0x38]
imul ecx, dword [esp + 0x24]
add ecx, dword [esp + 0x24]
sub ecx, dword [esp + 0x68]
mov eax, dword [esp + 0x34]
neg ecx
sbb ecx, ecx
xor edx, edx
inc ecx
cmp ecx, eax
mov eax, dword [esp + 0xa0]
setge dl
xor ecx, ecx
cmp edx, eax
setg cl
mov dword [esp + 0xc], ecx
lea ecx, [esp + 0xcc]
call fcn.1001671c
inc dword [esp + 0x34]
cmp dword [esp + 0x34], 1
jle 0x10019021
inc dword [esp + 0x10]
cmp dword [esp + 0x10], 1
jle 0x10018fec
inc dword [esp + 0x30]
cmp dword [esp + 0x30], 1
jle 0x10018f71
dec dword [esp + 0x24]
jns 0x10018f60
lea ecx, [esp + 0x84]
mov byte [esp + 0x174], 1
call fcn.1001671c
mov dword [esp + 0x2c], 2
cmp dword [esp + 0x2c], ebx
jl 0x10019444
xor eax, eax
mov dword [esp + 0x18], 0xffff
inc eax
lea ecx, [esp + 0xd8]
mov dword [esp + 0x28], eax
push eax
call fcn.10016697
mov dword [esp + 0x1c], ebx
jmp 0x10019224
mov ecx, dword [esp + 0x1c]
mov eax, dword [esp + 0xd8]
mov dword [eax + ecx*4], 0x9d94
inc dword [esp + 0x1c]
cmp dword [esp + 0x1c], 1
jl 0x1001920e
cmp dword [esp + 0x18], ebx
je 0x1001925a
mov dword [esp + 0x10], 0x8b108f82
mov eax, dword [esp + 0x10]
mov dword [esp + 0x28], eax
mov dword [esp + 0x10], ebx
jmp 0x10019251
cmp dword [esp + 0x28], ebx
jne 0x1001927f
inc dword [esp + 0x10]
cmp dword [esp + 0x10], 0x31
je 0x10019247
jmp 0x1001927f
mov dword [esp + 0x38], 0x2a831d26
mov dword [esp + 0x28], 0x5c285ce9
mov ecx, dword [esp + 0x18]
mov eax, dword [esp + 0xd8]
mov dword [eax], ecx
mov eax, dword [esp + 0x38]
mov dword [esp + 0x28], eax
lea ecx, [esp + 0xd8]
call fcn.1001671c
mov dword [esp + 0xc], ebx
mov dword [esp + 0x10], 0xffffffff
mov eax, dword [esp + 0xc]
neg eax
sbb eax, eax
inc eax
add eax, dword [esp + 0xc]
mov dword [esp + 0x10], eax
mov edx, dword [esp + 0xc]
sub edx, dword [esp + 0xc]
mov eax, dword [esp + 0x10]
neg edx
sbb edx, edx
xor ecx, ecx
inc edx
cmp edx, eax
mov eax, dword [esp + 0xc]
setge cl
xor edx, edx
cmp ecx, eax
mov eax, dword [esp + 0xc]
setl dl
xor ecx, ecx
cmp edx, eax
mov eax, dword [esp + 0xc]
setg cl
xor edx, edx
cmp ecx, eax
mov eax, dword [esp + 0xc]
setge dl
xor ecx, ecx
cmp eax, edx
mov eax, dword [esp + 0xc]
setg cl
sub ecx, 0xfffffff8
neg ecx
sbb ecx, ecx
inc ecx
sub eax, ecx
neg eax
sbb eax, eax
inc eax
mov dword [esp + 0xc], eax
mov dword [esp + 0x10], ebx
jmp 0x10019360
push 4
lea ecx, [esp + 0xf4]
call fcn.10016697
mov dword [esp + 0x38], 9
mov dword [esp + 0x1c], ebx
jmp 0x1001933b
mov ecx, dword [esp + 0x1c]
mov eax, dword [esp + 0xf0]
mov dword [eax + ecx*4], 0xfffe
inc dword [esp + 0x1c]
cmp dword [esp + 0x1c], 4
jl 0x10019325
mov eax, dword [esp + 0xf0]
lea ecx, [esp + 0xf0]
mov eax, dword [eax + 0xc]
mov dword [esp + 0x38], eax
call fcn.1001671c
dec dword [esp + 0x10]
cmp dword [esp + 0x10], 0xffffffee
jne 0x10019309
mov eax, dword [esp + 0x20]
mov edx, dword [esp + 0x2c]
mov ecx, dword [esp + 0x54]
mov eax, dword [esp + 0x20]
cmp eax, dword [ecx + edx*4]
jge 0x10019386
cmp dword [esp + 0x20], ebx
jne 0x10019386
mov ecx, ebx
jmp 0x10019389
xor ecx, ecx
inc ecx
mov eax, dword [esp + 0x2c]
mov dword [esp + 0x40], ecx
xor ecx, ecx
mov eax, dword [esp + 0x2c]
mov eax, dword [esp + 0x2c]
mov eax, dword [esp + 0x20]
mov esi, dword [esp + 0x2c]
mov eax, dword [esp + 0x20]
mov edx, dword [esp + 0x54]
push 0
cmp dword [edx + esi*4], eax
sete cl
mov dword [esp + 0x20], ecx
mov eax, dword [esp + 0x20]
mov edx, dword [esp + 0x30]
mov ecx, dword [esp + 0x58]
mov eax, dword [esp + 0x24]
cmp dword [ecx + edx*4], eax
mov eax, dword [esp + 0x24]
pop ecx
setg cl
add eax, ecx
jne 0x100193da
mov eax, dword [esp + 0x40]
mov ecx, dword [esp + 0x2c]
xor edx, edx
mov eax, dword [esp + 0x54]
cmp dword [eax + ecx*4], 1
sete dl
mov dword [esp + 0x18], edx
cmp dword [esp + 0x18], 0xc499
jg 0x10019404
cmp dword [esp + 0x40], ebx
je 0x10019404
xor edx, edx
inc edx
jmp 0x10019406
mov edx, ebx
mov eax, dword [esp + 0x20]
xor ecx, ecx
cmp edx, eax
mov eax, dword [esp + 0x20]
setle cl
add eax, ecx
jne 0x10019423
cmp dword [esp + 0x2c], ebx
jne 0x10019423
mov esi, ebx
jmp 0x10019426
xor esi, esi
inc esi
mov eax, dword [esp + 0x2c]
mov edx, dword [esp + 0x2c]
mov ecx, dword [esp + 0x54]
mov eax, dword [ecx + eax*4]
sub eax, esi
mov dword [ecx + edx*4], eax
dec dword [esp + 0x2c]
jns 0x100191ec
mov dword [esp + 0x20], ebx
cmp dword [esp + 0x20], 9
jne 0x10019512
mov edi, 0xf913
push 1
lea ecx, [esp + 0x70]
call fcn.10016697
push ebx
push 0x33db
push 0xa64
lea eax, [esp + 0x134]
mov byte [esp + 0x180], 4
push eax
lea eax, [esp + 0x7c]
push eax
call fcn.1001c4ec
mov eax, dword [esp + 0x80]
xor edx, edx
mov ecx, dword [esp + 0x2c]
add esp, 0x14
mov esi, dword [eax]
mov eax, dword [esp + 0x18]
cmp ecx, eax
setle dl
sub edx, esi
jne 0x100194af
test esi, esi
jne 0x100194af
mov esi, ebx
jmp 0x100194b2
xor esi, esi
inc esi
mov dword [esp + 0x40], edi
xor edx, edx
mov dword [esp + 0x1c], 0xfffffff6
mov ecx, dword [esp + 0x1c]
mov eax, dword [esp + 0x6c]
cmp ecx, dword [eax]
mov eax, dword [esp + 0x54]
setg dl
mov dword [esp + 0x38], edx
sub esi, dword [eax]
xor eax, eax
cmp esi, 0x49af
setne al
cmp eax, 0x839ca31b
mov eax, dword [esp + 0x20]
sbb edx, edx
add eax, dword [esp + 0x38]
inc edx
xor ecx, ecx
cmp eax, edx
setne cl
add ecx, edi
mov dword [esp + 0x18], ecx
je 0x10019558
mov eax, dword [esp + 0x6c]
cmp dword [eax], ebx
je 0x10019560
lea ecx, [esp + 0x6c]
call fcn.1001671c
or dword [esp + 0x174], 0xffffffff
lea ecx, [esp + 0x54]
call fcn.1001671c
mov eax, dword [esp + 0x9c]
mov ecx, 0x3e8
cdq
idiv ecx
mov ecx, dword [esp + 0x60]
mov edi, edx
mov esi, eax
call fcn.10018470
mov ecx, dword [esp + 0x16c]
add eax, esi
add eax, edi
mov dword fs:[0], ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov dword [esp + 0x40], 6
lea ecx, [esp + 0x6c]
cmp dword [esp + 0x1c], ebx
jne 0x1001950d
mov byte [esp + 0x174], 1
call fcn.1001671c
inc dword [esp + 0x20]
cmp dword [esp + 0x20], 9
je 0x10019458
jmp 0x10019512