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

Disassembly:
push 0xffffffffffffffff
push 0x10081940
mov eax, dword fs:[0]
push eax
sub esp, 0x40
push ebx
push ebp
push esi
push edi
mov eax, dword [0x1009fc80]
xor eax, esp
push eax
lea eax, [esp + 0x54]
mov dword fs:[0], eax
mov esi, dword [esp + 0x68]
mov eax, dword [esp + 0x6c]
mov eax, dword [esi + eax*4 + 0x7438]
test eax, eax
jne 0x1002439c
mov eax, dword [esp + 0x70]
push 2
push ecx
mov ecx, esp
mov dword [esp + 0x70], esp
push ecx
mov dword [ecx], eax
mov ecx, dword [esp + 0x78]
mov ebx, eax
mov eax, esp
mov dword [eax], ecx
xor ebx, 3
mov ecx, esi
mov dword [esp + 0x20], ebx
mov dword [esp + 0x74], esp
call fcn.10016b50
cmp eax, 2
jge 0x1002439c
test eax, eax
jne 0x10023087
mov ebp, dword [esp + 0x6c]
add ebp, 0x17
mov dword [esp + 0x68], eax
mov eax, dword [esi + ebp*4 + 0x7438]
cmp eax, ebx
jne 0x10022e56
mov eax, dword [esi + ebp*4 + 0x5b08]
lea edx, [eax + eax*4]
cmp dword [esi + edx*8 + 0x2780], 2
lea eax, [esi + edx*8 + 0x2778]
jne 0x10022e56
push 0
push ecx
mov eax, esp
mov ecx, esi
mov dword [esp + 0x24], esp
mov dword [eax], ebp
call fcn.100010a0
mov edi, eax
cmp edi, dword [esp + 0x6c]
jne 0x10022e02
push 1
push ecx
mov eax, esp
mov ecx, esi
mov dword [esp + 0x24], esp
mov dword [eax], ebp
call fcn.100010a0
mov edi, eax
cmp edi, dword [esi + 0x2720]
je 0x10022e56
push ecx
mov ecx, dword [esp + 0x74]
mov eax, esp
mov dword [esp + 0x20], esp
push ecx
mov dword [eax], ecx
mov eax, esp
mov dword [esp + 0x24], esp
push esi
mov dword [eax], edi
call fcn.10006620
add esp, 0xc
test al, al
jne 0x10023614
mov edx, dword [esp + 0x70]
push ecx
mov eax, esp
mov dword [esp + 0x20], esp
push ecx
mov dword [eax], edx
mov eax, esp
mov ecx, esi
mov dword [esp + 0x24], esp
mov dword [eax], edi
call fcn.10001110
test al, al
je 0x10022e56
mov dword [esp + 0x68], edi
add ebp, 0xffffffe8
cmp dword [esi + ebp*4 + 0x7438], ebx
jne 0x10022f07
mov eax, dword [esi + ebp*4 + 0x5b08]
lea eax, [eax + eax*4]
cmp dword [esi + eax*8 + 0x2780], 2
lea eax, [esi + eax*8 + 0x2778]
jne 0x10022f07
push 0
push ecx
mov eax, esp
mov ecx, esi
mov dword [esp + 0x24], esp
mov dword [eax], ebp
call fcn.100010a0
mov edi, eax
cmp edi, dword [esp + 0x6c]
jne 0x10022eb3
push 1
push ecx
mov eax, esp
mov ecx, esi
mov dword [esp + 0x24], esp
mov dword [eax], ebp
call fcn.100010a0
mov edi, eax
cmp edi, dword [esi + 0x2720]
je 0x10022f07
push ecx
mov ecx, dword [esp + 0x74]
mov eax, esp
mov dword [esp + 0x20], esp
push ecx
mov dword [eax], ecx
mov eax, esp
mov dword [esp + 0x24], esp
push esi
mov dword [eax], edi
call fcn.10006620
add esp, 0xc
test al, al
jne 0x10023614
mov edx, dword [esp + 0x70]
push ecx
mov eax, esp
mov dword [esp + 0x20], esp
push ecx
mov dword [eax], edx
mov eax, esp
mov ecx, esi
mov dword [esp + 0x24], esp
mov dword [eax], edi
call fcn.10001110
test al, al
je 0x10022f07
mov dword [esp + 0x68], edi
add ebp, 2
cmp dword [esi + ebp*4 + 0x7438], ebx
jne 0x10022fb8
mov eax, dword [esi + ebp*4 + 0x5b08]
lea eax, [eax + eax*4]
cmp dword [esi + eax*8 + 0x2780], 2
lea eax, [esi + eax*8 + 0x2778]
jne 0x10022fb8
push 0
push ecx
mov eax, esp
mov ecx, esi
mov dword [esp + 0x24], esp
mov dword [eax], ebp
call fcn.100010a0
mov edi, eax
cmp edi, dword [esp + 0x6c]
jne 0x10022f64
push 1
push ecx
mov eax, esp
mov ecx, esi
mov dword [esp + 0x24], esp
mov dword [eax], ebp
call fcn.100010a0
mov edi, eax
cmp edi, dword [esi + 0x2720]
je 0x10022fb8
push ecx
mov ecx, dword [esp + 0x74]
mov eax, esp
mov dword [esp + 0x20], esp
push ecx
mov dword [eax], ecx
mov eax, esp
mov dword [esp + 0x24], esp
push esi
mov dword [eax], edi
call fcn.10006620
add esp, 0xc
test al, al
jne 0x10023614
mov edx, dword [esp + 0x70]
push ecx
mov eax, esp
mov dword [esp + 0x20], esp
push ecx
mov dword [eax], edx
mov eax, esp
mov ecx, esi
mov dword [esp + 0x24], esp
mov dword [eax], edi
call fcn.10001110
test al, al
je 0x10022fb8
mov dword [esp + 0x68], edi
add ebp, 0xffffffe8
cmp dword [esi + ebp*4 + 0x7438], ebx
jne 0x10023069
mov eax, dword [esi + ebp*4 + 0x5b08]
lea eax, [eax + eax*4]
cmp dword [esi + eax*8 + 0x2780], 2
lea eax, [esi + eax*8 + 0x2778]
jne 0x10023069
push 0
push ecx
mov eax, esp
mov ecx, esi
mov dword [esp + 0x24], esp
mov dword [eax], ebp
call fcn.100010a0
mov edi, eax
cmp edi, dword [esp + 0x6c]
jne 0x10023015
push 1
push ecx
mov eax, esp
mov ecx, esi
mov dword [esp + 0x24], esp
mov dword [eax], ebp
call fcn.100010a0
mov edi, eax
cmp edi, dword [esi + 0x2720]
je 0x10023069
push ecx
mov ecx, dword [esp + 0x74]
mov eax, esp
mov dword [esp + 0x20], esp
push ecx
mov dword [eax], ecx
mov eax, esp
mov dword [esp + 0x24], esp
push esi
mov dword [eax], edi
call fcn.10006620
add esp, 0xc
test al, al
jne 0x10023614
mov edx, dword [esp + 0x70]
push ecx
mov eax, esp
mov dword [esp + 0x20], esp
push ecx
mov dword [eax], edx
mov eax, esp
mov ecx, esi
mov dword [esp + 0x24], esp
mov dword [eax], edi
call fcn.10001110
test al, al
je 0x10023069
mov dword [esp + 0x68], edi
mov eax, dword [esp + 0x64]
mov ecx, dword [esp + 0x68]
mov dword [eax], ecx
mov ecx, dword [esp + 0x54]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x4c
ret
mov ecx, dword [esp + 0x6c]
mov edx, dword [esi + ecx*4 + 0x7494]
mov eax, dword [esp + 0x70]
add ecx, 0x17
mov dword [esp + 0x1c], ecx
cmp edx, eax
jne 0x100231d8
mov edx, dword [esi + ecx*4 + 0x5b08]
lea edx, [edx + edx*4]
cmp dword [esi + edx*8 + 0x2780], 1
lea edx, [esi + edx*8 + 0x2778]
jne 0x100231d8
push ecx
mov eax, esp
lea edx, [esp + 0x28]
xor ebx, ebx
mov dword [esp + 0x24], esp
mov dword [eax], ecx
push edx
mov ecx, esi
mov dword [esp + 0x20], ebx
mov dword [esp + 0x70], ebx
call fcn.10019ad0
mov eax, dword [esp + 0x34]
sub eax, dword [esp + 0x30]
mov dword [esp + 0x5c], ebx
sar eax, 2
cmp ebx, eax
jae 0x100231bf
mov eax, dword [esp + 0x30]
mov eax, dword [eax + ebx*4]
mov eax, dword [esi + eax*4 + 0x5b08]
lea ecx, [eax + eax*4]
cmp dword [esi + ecx*8 + 0x2780], 1
lea ecx, [esi + ecx*8 + 0x2778]
jne 0x1002317b
lea edx, [eax + eax*4]
mov edi, dword [esi + edx*8 + 0x2778]
lea eax, [eax + eax*4]
mov ebp, dword [esi + eax*8 + 0x2784]
lea ecx, [esi + edx*8 + 0x2778]
lea eax, [esi + eax*8 + 0x2778]
inc edi
cmp ebp, dword [esi + 0x2720]
je 0x1002317b
push ecx
mov ecx, dword [esp + 0x74]
mov eax, esp
mov dword [esp + 0x24], esp
push ecx
mov dword [eax], ecx
mov eax, esp
mov ecx, esi
mov dword [esp + 0x28], esp
mov dword [eax], ebp
call fcn.10001160
test al, al
je 0x1002316d
mov edi, 1
cmp edi, dword [esp + 0x68]
jle 0x1002317b
mov dword [esp + 0x68], edi
mov dword [esp + 0x18], ebp
mov eax, dword [esp + 0x34]
sub eax, dword [esp + 0x30]
inc ebx
sar eax, 2
cmp ebx, eax
jb 0x100230fa
cmp dword [esp + 0x68], 0
jle 0x100231bf
mov edx, dword [esp + 0x18]
mov esi, dword [esp + 0x64]
lea ecx, [esp + 0x24]
mov dword [esi], edx
call fcn.1003a700
mov eax, esi
mov ecx, dword [esp + 0x54]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x4c
ret
lea ecx, [esp + 0x24]
mov dword [esp + 0x5c], 0xffffffff
call fcn.1003a700
mov eax, dword [esp + 0x70]
mov ecx, dword [esp + 0x1c]
add ecx, 0xffffffe8
mov dword [esp + 0x18], ecx
cmp dword [esi + ecx*4 + 0x7438], eax
jne 0x10023323
mov edx, dword [esi + ecx*4 + 0x5b08]
lea edx, [edx + edx*4]
cmp dword [esi + edx*8 + 0x2780], 1
lea edx, [esi + edx*8 + 0x2778]
jne 0x10023323
push ecx
mov eax, esp
lea edx, [esp + 0x28]
xor ebx, ebx
mov dword [esp + 0x24], esp
mov dword [eax], ecx
push edx
mov ecx, esi
mov dword [esp + 0x24], ebx
mov dword [esp + 0x70], ebx
call fcn.10019ad0
mov eax, dword [esp + 0x34]
sub eax, dword [esp + 0x30]
mov dword [esp + 0x5c], 1
sar eax, 2
cmp ebx, eax
jae 0x1002330a
mov eax, dword [esp + 0x30]
mov eax, dword [eax + ebx*4]
mov eax, dword [esi + eax*4 + 0x5b08]
lea ecx, [eax + eax*4]
cmp dword [esi + ecx*8 + 0x2780], 1
lea ecx, [esi + ecx*8 + 0x2778]
jne 0x100232c6
lea edx, [eax + eax*4]
mov edi, dword [esi + edx*8 + 0x2778]
lea eax, [eax + eax*4]
mov ebp, dword [esi + eax*8 + 0x2784]
lea ecx, [esi + edx*8 + 0x2778]
lea eax, [esi + eax*8 + 0x2778]
inc edi
cmp ebp, dword [esi + 0x2720]
je 0x100232c6
push ecx
mov ecx, dword [esp + 0x74]
mov eax, esp
mov dword [esp + 0x24], esp
push ecx
mov dword [eax], ecx
mov eax, esp
mov ecx, esi
mov dword [esp + 0x28], esp
mov dword [eax], ebp
call fcn.10001160
test al, al
je 0x100232b8
mov edi, 1
cmp edi, dword [esp + 0x68]
jle 0x100232c6
mov dword [esp + 0x68], edi
mov dword [esp + 0x1c], ebp
mov eax, dword [esp + 0x34]
sub eax, dword [esp + 0x30]
inc ebx
sar eax, 2
cmp ebx, eax
jb 0x10023245
cmp dword [esp + 0x68], 0
jle 0x1002330a
mov edx, dword [esp + 0x1c]
mov esi, dword [esp + 0x64]
lea ecx, [esp + 0x24]
mov dword [esi], edx
call fcn.1003a700
mov eax, esi
mov ecx, dword [esp + 0x54]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x4c
ret
lea ecx, [esp + 0x24]
mov dword [esp + 0x5c], 0xffffffff
call fcn.1003a700
mov eax, dword [esp + 0x70]
mov ecx, dword [esp + 0x18]
add ecx, 2
mov dword [esp + 0x18], ecx
cmp dword [esi + ecx*4 + 0x7438], eax
jne 0x10023449
mov edx, dword [esi + ecx*4 + 0x5b08]
lea edx, [edx + edx*4]
cmp dword [esi + edx*8 + 0x2780], 1
lea edx, [esi + edx*8 + 0x2778]
jne 0x10023449
push ecx
mov eax, esp
lea edx, [esp + 0x28]
xor ebx, ebx
mov dword [esp + 0x24], esp
mov dword [eax], ecx
push edx
mov ecx, esi
mov dword [esp + 0x24], ebx
mov dword [esp + 0x70], ebx
call fcn.10019ad0
mov eax, dword [esp + 0x34]
sub eax, dword [esp + 0x30]
mov dword [esp + 0x5c], 2
sar eax, 2
cmp ebx, eax
jae 0x10023430
mov eax, dword [esp + 0x30]
mov eax, dword [eax + ebx*4]
mov eax, dword [esi + eax*4 + 0x5b08]
lea ecx, [eax + eax*4]
cmp dword [esi + ecx*8 + 0x2780], 1
lea ecx, [esi + ecx*8 + 0x2778]
jne 0x10023411
lea edx, [eax + eax*4]
mov edi, dword [esi + edx*8 + 0x2778]
lea eax, [eax + eax*4]
mov ebp, dword [esi + eax*8 + 0x2784]
lea ecx, [esi + edx*8 + 0x2778]
lea eax, [esi + eax*8 + 0x2778]
inc edi
cmp ebp, dword [esi + 0x2720]
je 0x10023411
push ecx
mov ecx, dword [esp + 0x74]
mov eax, esp
mov dword [esp + 0x24], esp
push ecx
mov dword [eax], ecx
mov eax, esp
mov ecx, esi
mov dword [esp + 0x28], esp
mov dword [eax], ebp
call fcn.10001160
test al, al
je 0x10023403
mov edi, 1
cmp edi, dword [esp + 0x68]
jle 0x10023411
mov dword [esp + 0x68], edi
mov dword [esp + 0x1c], ebp
mov eax, dword [esp + 0x34]
sub eax, dword [esp + 0x30]
inc ebx
sar eax, 2
cmp ebx, eax
jb 0x10023390
cmp dword [esp + 0x68], 0
jg 0x100232e1
lea ecx, [esp + 0x24]
mov dword [esp + 0x5c], 0xffffffff
call fcn.1003a700
mov eax, dword [esp + 0x70]
mov ecx, dword [esp + 0x18]
add ecx, 0xffffffe8
cmp dword [esi + ecx*4 + 0x7438], eax
jne 0x100235c3
mov edx, dword [esi + ecx*4 + 0x5b08]
lea edx, [edx + edx*4]
cmp dword [esi + edx*8 + 0x2780], 1
lea edx, [esi + edx*8 + 0x2778]
jne 0x100235c3
push ecx
mov eax, esp
mov dword [eax], ecx
lea eax, [esp + 0x28]
xor ebx, ebx
mov dword [esp + 0x24], esp
push eax
mov ecx, esi
mov dword [esp + 0x24], ebx
mov dword [esp + 0x70], ebx
call fcn.10019ad0
mov eax, dword [esp + 0x34]
mov ecx, dword [esp + 0x30]
sub eax, ecx
sar eax, 2
mov dword [esp + 0x5c], 3
cmp ebx, eax
jae 0x1002358f
mov eax, dword [ecx + ebx*4]
mov eax, dword [esi + eax*4 + 0x5b08]
lea edx, [eax + eax*4]
cmp dword [esi + edx*8 + 0x2780], 1
lea edx, [esi + edx*8 + 0x2778]
jne 0x1002352e
lea edx, [eax + eax*4]
mov edi, dword [esi + edx*8 + 0x2778]
lea eax, [eax + eax*4]
mov ebp, dword [esi + eax*8 + 0x2784]
lea edx, [esi + edx*8 + 0x2778]
lea eax, [esi + eax*8 + 0x2778]
inc edi
cmp ebp, dword [esi + 0x2720]
je 0x1002352e
push ecx
mov ecx, dword [esp + 0x74]
mov eax, esp
mov dword [eax], ecx
push ecx
mov eax, esp
mov ecx, esi
mov dword [eax], ebp
call fcn.100186c0
cmp eax, 1
jg 0x1002351c
mov edi, 1
cmp edi, dword [esp + 0x68]
mov ecx, dword [esp + 0x30]
jle 0x1002352e
mov dword [esp + 0x68], edi
mov dword [esp + 0x1c], ebp
mov eax, dword [esp + 0x34]
sub eax, ecx
inc ebx
sar eax, 2
cmp ebx, eax
jb 0x100234b4
cmp dword [esp + 0x68], 0
jle 0x1002358f
mov esi, dword [esp + 0x64]
mov edx, dword [esp + 0x1c]
mov dword [esi], edx
test ecx, ecx
je 0x1002355e
push ecx
call fcn.100661e7
add esp, 4
xor eax, eax
mov dword [esp + 0x30], eax
mov dword [esp + 0x34], eax
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0x24]
push eax
call fcn.100661e7
add esp, 4
mov eax, esi
mov ecx, dword [esp + 0x54]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x4c
ret
mov dword [esp + 0x5c], 0xffffffff
test ecx, ecx
je 0x100235a4
push ecx
call fcn.100661e7
add esp, 4
mov ecx, dword [esp + 0x24]
xor eax, eax
push ecx
mov dword [esp + 0x34], eax
mov dword [esp + 0x38], eax
mov dword [esp + 0x3c], eax
call fcn.100661e7
mov eax, dword [esp + 0x74]
add esp, 4
mov edi, dword [esp + 0x6c]
mov ecx, dword [esi + edi*4 + 0x7494]
add edi, 0x17
mov dword [esp + 0x18], edi
test ecx, ecx
jne 0x1002362e
mov edx, eax
imul edx, edx, 0x271
add edx, edi
cmp dword [esi + edx*4 + 0x87c0], ecx
jle 0x1002390d
push 3
push ecx
mov ecx, esp
mov dword [esp + 0x70], esp
push ecx
mov dword [ecx], eax
mov eax, esp
mov ecx, esi
mov dword [esp + 0x74], esp
mov dword [eax], edi
call fcn.10016b50
cmp eax, 3
jl 0x10023909
mov eax, dword [esp + 0x64]
mov dword [eax], edi
mov ecx, dword [esp + 0x54]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x4c
ret
cmp ecx, eax
jne 0x1002390d
mov ecx, dword [esi + edi*4 + 0x5b08]
lea ecx, [ecx + ecx*4]
cmp dword [esi + ecx*8 + 0x2780], 2
lea ecx, [esi + ecx*8 + 0x2778]
jne 0x1002390d
mov edx, dword [esp + 0x18]
push ecx
mov eax, esp
mov dword [eax], edx
lea eax, [esp + 0x28]
xor ebx, ebx
mov dword [esp + 0x24], esp
push eax
mov ecx, esi
mov dword [esp + 0x24], ebx
mov dword [esp + 0x70], ebx
call fcn.10019ad0
mov eax, dword [esp + 0x34]
sub eax, dword [esp + 0x30]
mov dword [esp + 0x5c], 4
sar eax, 2
cmp ebx, eax
jae 0x10023733
mov ecx, dword [esp + 0x30]
mov eax, dword [ecx + ebx*4]
mov eax, dword [esi + eax*4 + 0x5b08]
lea edx, [eax + eax*4]
cmp dword [esi + edx*8 + 0x2780], 1
lea ecx, [esi + edx*8 + 0x2778]
jne 0x10023714
lea ecx, [eax + eax*4]
mov edi, dword [esi + ecx*8 + 0x2778]
lea edx, [eax + eax*4]
mov ebp, dword [esi + edx*8 + 0x2784]
lea ecx, [esi + ecx*8 + 0x2778]
lea eax, [esi + edx*8 + 0x2778]
inc edi
cmp ebp, dword [esi + 0x2720]
je 0x10023714
push ecx
mov ecx, dword [esp + 0x74]
mov eax, esp
mov dword [esp + 0x24], esp
push ecx
mov dword [eax], ecx
mov eax, esp
mov ecx, esi
mov dword [esp + 0x28], esp
mov dword [eax], ebp
call fcn.10001160
test al, al
je 0x10023706
mov edi, 1
cmp edi, dword [esp + 0x68]
jle 0x10023714
mov dword [esp + 0x68], edi
mov dword [esp + 0x1c], ebp
mov eax, dword [esp + 0x34]
sub eax, dword [esp + 0x30]
inc ebx
sar eax, 2
cmp ebx, eax
jb 0x10023693
cmp dword [esp + 0x68], 0
jg 0x100232e1
mov eax, dword [esp + 0x18]
mov eax, dword [esi + eax*4 + 0x5b08]
lea ecx, [eax + eax*4]
mov ebx, dword [esi + ecx*8 + 0x2784]
lea ecx, [esi + ecx*8 + 0x2778]
cmp ebx, dword [esp + 0x6c]
jne 0x10023766
lea edx, [eax + eax*4]
mov ebx, dword [esi + edx*8 + 0x2788]
lea eax, [esi + edx*8 + 0x2778]
cmp ebx, dword [esi + 0x2720]
je 0x100238f4
push 3
push ecx
mov ecx, dword [esp + 0x78]
mov eax, esp
mov dword [esp + 0x70], esp
push ecx
mov dword [eax], ecx
mov eax, esp
mov ecx, esi
mov dword [esp + 0x74], esp
mov dword [eax], ebx
call fcn.10016b50
cmp eax, 3
jl 0x100237bb
mov esi, dword [esp + 0x64]
lea ecx, [esp + 0x24]
mov dword [esi], ebx
call fcn.1003a700
mov eax, esi
mov ecx, dword [esp + 0x54]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x4c
ret
cmp eax, 2
jne 0x100238f4
mov ebp, dword [esp + 0x14]
cmp dword [esi + ebx*4 + 0x7494], ebp
lea edi, [ebx + 0x17]
jne 0x10023810
mov eax, dword [esi + edi*4 + 0x5b08]
lea edx, [eax + eax*4]
cmp dword [esi + edx*8 + 0x2780], 2
lea eax, [esi + edx*8 + 0x2778]
jne 0x10023810
push ecx
mov eax, esp
mov dword [esp + 0x6c], esp
push ecx
mov dword [eax], edi
mov ecx, dword [esp + 0x74]
mov eax, esp
mov dword [eax], ecx
mov ecx, esi
mov dword [esp + 0x70], esp
call fcn.100171b0
test al, al
jne 0x10023796
add edi, 0xffffffe8
cmp dword [esi + edi*4 + 0x7438], ebp
jne 0x1002385c
mov eax, dword [esi + edi*4 + 0x5b08]
lea edx, [eax + eax*4]
cmp dword [esi + edx*8 + 0x2780], 2
lea eax, [esi + edx*8 + 0x2778]
jne 0x1002385c
push ecx
mov eax, esp
mov dword [esp + 0x6c], esp
push ecx
mov dword [eax], edi
mov ecx, dword [esp + 0x74]
mov eax, esp
mov dword [eax], ecx
mov ecx, esi
mov dword [esp + 0x70], esp
call fcn.100171b0
test al, al
jne 0x10023796
add edi, 2
cmp dword [esi + edi*4 + 0x7438], ebp
jne 0x100238a8
mov eax, dword [esi + edi*4 + 0x5b08]
lea edx, [eax + eax*4]
cmp dword [esi + edx*8 + 0x2780], 2
lea eax, [esi + edx*8 + 0x2778]
jne 0x100238a8
push ecx
mov eax, esp
mov dword [esp + 0x6c], esp
push ecx
mov dword [eax], edi
mov ecx, dword [esp + 0x74]
mov eax, esp
mov dword [eax], ecx
mov ecx, esi
mov dword [esp + 0x70], esp
call fcn.100171b0
test al, al
jne 0x10023796
cmp dword [esi + edi*4 + 0x73d8], ebp
lea eax, [edi - 0x18]
jne 0x100238f4
mov ecx, dword [esi + eax*4 + 0x5b08]
lea edx, [ecx + ecx*4]
cmp dword [esi + edx*8 + 0x2780], 2
lea ecx, [esi + edx*8 + 0x2778]
jne 0x100238f4
push ecx
mov ecx, esp
mov dword [esp + 0x6c], esp
push ecx
mov dword [ecx], eax
mov ecx, dword [esp + 0x74]
mov eax, esp
mov dword [eax], ecx
mov ecx, esi
mov dword [esp + 0x70], esp
call fcn.100171b0
test al, al
jne 0x10023796
lea ecx, [esp + 0x24]
mov dword [esp + 0x5c], 0xffffffff
call fcn.1003a700
mov edi, dword [esp + 0x18]
mov eax, dword [esp + 0x70]
mov ecx, dword [esi + edi*4 + 0x73d8]
add edi, 0xffffffe8
mov dword [esp + 0x68], edi
test ecx, ecx
jne 0x10023974
mov edx, eax
imul edx, edx, 0x271
add edx, edi
cmp dword [esi + edx*4 + 0x87c0], ecx
jle 0x10023c96
push 3
push ecx
mov ecx, esp
mov dword [esp + 0x70], esp
push ecx
mov dword [ecx], eax
mov eax, esp
mov ecx, esi
mov dword [esp + 0x74], esp
mov dword [eax], edi
call fcn.10016b50
cmp eax, 3
jl 0x10023c92
mov eax, dword [esp + 0x64]
mov dword [eax], edi
mov ecx, dword [esp + 0x54]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x4c
ret
cmp ecx, eax
jne 0x10023c96
mov ecx, dword [esi + edi*4 + 0x5b08]
lea ecx, [ecx + ecx*4]
cmp dword [esi + ecx*8 + 0x2780], 2
lea ecx, [esi + ecx*8 + 0x2778]
jne 0x10023c96
mov edx, dword [esp + 0x68]
push ecx
mov eax, esp
mov dword [eax], edx
lea eax, [esp + 0x28]
xor ebx, ebx
mov dword [esp + 0x24], esp
push eax
mov ecx, esi
mov dword [esp + 0x24], ebx
mov dword [esp + 0x20], ebx
call fcn.10019ad0
mov eax, dword [esp + 0x34]
sub eax, dword [esp + 0x30]
mov dword [esp + 0x5c], 5
sar eax, 2
cmp ebx, eax
jae 0x10023a79
mov ecx, dword [esp + 0x30]
mov eax, dword [ecx + ebx*4]
mov eax, dword [esi + eax*4 + 0x5b08]
lea edx, [eax + eax*4]
cmp dword [esi + edx*8 + 0x2780], 1
lea ecx, [esi + edx*8 + 0x2778]
jne 0x10023a5a
lea ecx, [eax + eax*4]
mov edi, dword [esi + ecx*8 + 0x2778]
lea edx, [eax + eax*4]
mov ebp, dword [esi + edx*8 + 0x2784]
lea ecx, [esi + ecx*8 + 0x2778]
lea eax, [esi + edx*8 + 0x2778]
inc edi
cmp ebp, dword [esi + 0x2720]
je 0x10023a5a
push ecx
mov ecx, dword [esp + 0x74]
mov eax, esp
mov dword [esp + 0x24], esp
push ecx
mov dword [eax], ecx
mov eax, esp
mov ecx, esi
mov dword [esp + 0x28], esp
mov dword [eax], ebp
call fcn.10001160
test al, al
je 0x10023a4c
mov edi, 1
cmp edi, dword [esp + 0x18]
jle 0x10023a5a
mov dword [esp + 0x18], edi
mov dword [esp + 0x1c], ebp
mov eax, dword [esp + 0x34]
sub eax, dword [esp + 0x30]
inc ebx
sar eax, 2
cmp ebx, eax
jb 0x100239d9
cmp dword [esp + 0x18], 0
jg 0x100232e1
mov eax, dword [esp + 0x68]
mov eax, dword [esi + eax*4 + 0x5b08]
lea ecx, [eax + eax*4]
mov ebp, dword [esi + ecx*8 + 0x2784]
lea eax, [esi + ecx*8 + 0x2778]
cmp ebp, dword [esp + 0x6c]
jne 0x10023ab3
mov edx, dword [esp + 0x68]
push 1
push ecx
mov eax, esp
mov ecx, esi
mov dword [esp + 0x28], esp
mov dword [eax], edx
call fcn.100010a0
mov ebp, eax
cmp ebp, dword [esi + 0x2720]
je 0x10023c7d
push 3
push ecx
mov ecx, dword [esp + 0x78]
mov eax, esp
mov dword [esp + 0x28], esp
push ecx
mov dword [eax], ecx
mov eax, esp
mov ecx, esi
mov dword [esp + 0x2c], esp
mov dword [eax], ebp
call fcn.10016b50
cmp eax, 3
jl 0x10023b08
mov esi, dword [esp + 0x64]
lea ecx, [esp + 0x24]
mov dword [esi], ebp
call fcn.1003a700
mov eax, esi
mov ecx, dword [esp + 0x54]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x4c
ret
cmp eax, 2
jne 0x10023c7d
mov ebx, dword [esp + 0x14]
push ecx
mov eax, esp
mov dword [esp + 0x24], esp
push ecx
mov dword [eax], ebx
mov eax, esp
lea edi, [ebp + 0x17]
mov ecx, esi
mov dword [esp + 0x28], esp
mov dword [eax], edi
call fcn.10001010
test al, al
je 0x10023b6f
push ecx
mov eax, esp
mov ecx, esi
mov dword [esp + 0x24], esp
mov dword [eax], edi
call fcn.10001080
cmp eax, 2
jne 0x10023b6f
push ecx
mov eax, esp
mov dword [esp + 0x24], esp
push ecx
mov dword [eax], edi
mov edx, dword [esp + 0x74]
mov eax, esp
mov ecx, esi
mov dword [esp + 0x28], esp
mov dword [eax], edx
call fcn.100171b0
test al, al
jne 0x10023ae3
push ecx
mov eax, esp
mov dword [esp + 0x24], esp
push ecx
mov dword [eax], ebx
mov eax, esp
add edi, 0xffffffe8
mov ecx, esi
mov dword [esp + 0x28], esp
mov dword [eax], edi
call fcn.10001010
test al, al
je 0x10023bc9
push ecx
mov eax, esp
mov ecx, esi
mov dword [esp + 0x24], esp
mov dword [eax], edi
call fcn.10001080
cmp eax, 2
jne 0x10023bc9
push ecx
mov eax, esp
mov dword [esp + 0x24], esp
push ecx
mov dword [eax], edi
mov ecx, dword [esp + 0x74]
mov eax, esp
mov dword [eax], ecx
mov ecx, esi
mov dword [esp + 0x28], esp
call fcn.100171b0
test al, al
jne 0x10023ae3
push ecx
mov eax, esp
mov dword [esp + 0x24], esp
push ecx
mov dword [eax], ebx
mov eax, esp
add edi, 2
mov ecx, esi
mov dword [esp + 0x28], esp
mov dword [eax], edi
call fcn.10001010
test al, al
je 0x10023c23
push ecx
mov eax, esp
mov ecx, esi
mov dword [esp + 0x24], esp
mov dword [eax], edi
call fcn.10001080
cmp eax, 2
jne 0x10023c23
push ecx
mov eax, esp
mov dword [esp + 0x24], esp
push ecx
mov dword [eax], edi
mov edx, dword [esp + 0x74]
mov eax, esp
mov ecx, esi
mov dword [esp + 0x28], esp
mov dword [eax], edx
call fcn.100171b0
test al, al
jne 0x10023ae3
push ecx
mov eax, esp
mov dword [esp + 0x24], esp
push ecx
mov dword [eax], ebx
mov eax, esp
add edi, 0xffffffe8
mov ecx, esi
mov dword [esp + 0x28], esp
mov dword [eax], edi
call fcn.10001010
test al, al
je 0x10023c7d
push ecx
mov eax, esp
mov ecx, esi
mov dword [esp + 0x24], esp
mov dword [eax], edi
call fcn.10001080
cmp eax, 2
jne 0x10023c7d
push ecx
mov eax, esp
mov dword [esp + 0x24], esp
push ecx
mov dword [eax], edi
mov ecx, dword [esp + 0x74]
mov eax, esp
mov dword [eax], ecx
mov ecx, esi
mov dword [esp + 0x28], esp
call fcn.100171b0
test al, al
jne 0x10023ae3
lea ecx, [esp + 0x24]
mov dword [esp + 0x5c], 0xffffffff
call fcn.1003a700
mov edi, dword [esp + 0x68]
mov eax, dword [esp + 0x70]
mov ecx, dword [esi + edi*4 + 0x7440]
add edi, 2
mov dword [esp + 0x68], edi
test ecx, ecx
jne 0x10023cfd
mov edx, eax
imul edx, edx, 0x271
add edx, edi
cmp dword [esi + edx*4 + 0x87c0], ecx
jle 0x10023ffe
push 3
push ecx
mov ecx, esp
mov dword [esp + 0x70], esp
push ecx
mov dword [ecx], eax
mov eax, esp
mov ecx, esi
mov dword [esp + 0x74], esp
mov dword [eax], edi
call fcn.10016b50
cmp eax, 3
jl 0x10023ffa
mov eax, dword [esp + 0x64]
mov dword [eax], edi
mov ecx, dword [esp + 0x54]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x4c
ret
cmp ecx, eax
jne 0x10023ffe
mov ecx, dword [esi + edi*4 + 0x5b08]
lea ecx, [ecx + ecx*4]
cmp dword [esi + ecx*8 + 0x2780], 2
lea ecx, [esi + ecx*8 + 0x2778]
jne 0x10023ffe
mov edx, dword [esp + 0x68]
push ecx
mov eax, esp
mov dword [eax], edx
lea eax, [esp + 0x28]
xor ebx, ebx
mov dword [esp + 0x24], esp
push eax
mov ecx, esi
mov dword [esp + 0x24], ebx
mov dword [esp + 0x20], ebx
call fcn.10019ad0
mov eax, dword [esp + 0x34]
sub eax, dword [esp + 0x30]
mov dword [esp + 0x5c], 6
sar eax, 2
cmp ebx, eax
jae 0x10023e02
mov ecx, dword [esp + 0x30]
mov eax, dword [ecx + ebx*4]
mov eax, dword [esi + eax*4 + 0x5b08]
lea edx, [eax + eax*4]
cmp dword [esi + edx*8 + 0x2780], 1
lea ecx, [esi + edx*8 + 0x2778]
jne 0x10023de3
lea ecx, [eax + eax*4]
mov edi, dword [esi + ecx*8 + 0x2778]
lea edx, [eax + eax*4]
mov ebp, dword [esi + edx*8 + 0x2784]
lea ecx, [esi + ecx*8 + 0x2778]
lea eax, [esi + edx*8 + 0x2778]
inc edi
cmp ebp, dword [esi + 0x2720]
je 0x10023de3
push ecx
mov ecx, dword [esp + 0x74]
mov eax, esp
mov dword [esp + 0x24], esp
push ecx
mov dword [eax], ecx
mov eax, esp
mov ecx, esi
mov dword [esp + 0x28], esp
mov dword [eax], ebp
call fcn.10001160
test al, al
je 0x10023dd5
mov edi, 1
cmp edi, dword [esp + 0x18]
jle 0x10023de3
mov dword [esp + 0x18], edi
mov dword [esp + 0x1c], ebp
mov eax, dword [esp + 0x34]
sub eax, dword [esp + 0x30]
inc ebx
sar eax, 2
cmp ebx, eax
jb 0x10023d62
cmp dword [esp + 0x18], 0
jg 0x100232e1
mov eax, dword [esp + 0x68]
mov eax, dword [esi + eax*4 + 0x5b08]
lea ecx, [eax + eax*4]
mov ebp, dword [esi + ecx*8 + 0x2784]
lea eax, [esi + ecx*8 + 0x2778]
cmp ebp, dword [esp + 0x6c]
jne 0x10023e3c
mov edx, dword [esp + 0x68]
push 1
push ecx
mov eax, esp
mov ecx, esi
mov dword [esp + 0x28], esp
mov dword [eax], edx
call fcn.100010a0
mov ebp, eax
cmp ebp, dword [esi + 0x2720]
je 0x10023fe5
push 3
push ecx
mov ecx, dword [esp + 0x78]
mov eax, esp
mov dword [esp + 0x28], esp
push ecx
mov dword [eax], ecx
mov eax, esp
mov ecx, esi
mov dword [esp + 0x2c], esp
mov dword [eax], ebp
call fcn.10016b50
cmp eax, 3
jge 0x10023ae3
cmp eax, 2
jne 0x10023fe5
mov ebx, dword [esp + 0x14]
push ecx
mov eax, esp
mov dword [esp + 0x24], esp
push ecx
mov dword [eax], ebx
mov eax, esp
lea edi, [ebp + 0x17]
mov ecx, esi
mov dword [esp + 0x28], esp
mov dword [eax], edi
call fcn.10001010
test al, al
je 0x10023ed7
push ecx
mov eax, esp
mov ecx, esi
mov dword [esp + 0x24], esp
mov dword [eax], edi
call fcn.10001080
cmp eax, 2
jne 0x10023ed7
push ecx
mov eax, esp
mov dword [esp + 0x24], esp
push ecx
mov dword [eax], edi
mov edx, dword [esp + 0x74]
mov eax, esp
mov ecx, esi
mov dword [esp + 0x28], esp
mov dword [eax], edx
call fcn.100171b0
test al, al
jne 0x10023ae3
push ecx
mov eax, esp
mov dword [esp + 0x24], esp
push ecx
mov dword [eax], ebx
mov eax, esp
add edi, 0xffffffe8
mov ecx, esi
mov dword [esp + 0x28], esp
mov dword [eax], edi
call fcn.10001010
test al, al
je 0x10023f31
push ecx
mov eax, esp
mov ecx, esi
mov dword [esp + 0x24], esp
mov dword [eax], edi
call fcn.10001080
cmp eax, 2
jne 0x10023f31
push ecx
mov eax, esp
mov dword [esp + 0x24], esp
push ecx
mov dword [eax], edi
mov ecx, dword [esp + 0x74]
mov eax, esp
mov dword [eax], ecx
mov ecx, esi
mov dword [esp + 0x28], esp
call fcn.100171b0
test al, al
jne 0x10023ae3
push ecx
mov eax, esp
mov dword [esp + 0x24], esp
push ecx
mov dword [eax], ebx
mov eax, esp
add edi, 2
mov ecx, esi
mov dword [esp + 0x28], esp
mov dword [eax], edi
call fcn.10001010
test al, al
je 0x10023f8b
push ecx
mov eax, esp
mov ecx, esi
mov dword [esp + 0x24], esp
mov dword [eax], edi
call fcn.10001080
cmp eax, 2
jne 0x10023f8b
push ecx
mov eax, esp
mov dword [esp + 0x24], esp
push ecx
mov dword [eax], edi
mov edx, dword [esp + 0x74]
mov eax, esp
mov ecx, esi
mov dword [esp + 0x28], esp
mov dword [eax], edx
call fcn.100171b0
test al, al
jne 0x10023ae3
push ecx
mov eax, esp
mov dword [esp + 0x24], esp
push ecx
mov dword [eax], ebx
mov eax, esp
add edi, 0xffffffe8
mov ecx, esi
mov dword [esp + 0x28], esp
mov dword [eax], edi
call fcn.10001010
test al, al
je 0x10023fe5
push ecx
mov eax, esp
mov ecx, esi
mov dword [esp + 0x24], esp
mov dword [eax], edi
call fcn.10001080
cmp eax, 2
jne 0x10023fe5
push ecx
mov eax, esp
mov dword [esp + 0x24], esp
push ecx
mov dword [eax], edi
mov ecx, dword [esp + 0x74]
mov eax, esp
mov dword [eax], ecx
mov ecx, esi
mov dword [esp + 0x28], esp
call fcn.100171b0
test al, al
jne 0x10023ae3
lea ecx, [esp + 0x24]
mov dword [esp + 0x5c], 0xffffffff
call fcn.1003a700
mov edi, dword [esp + 0x68]
mov eax, dword [esp + 0x70]
mov ecx, dword [esi + edi*4 + 0x73d8]
add edi, 0xffffffe8
mov dword [esp + 0x18], edi
test ecx, ecx
jne 0x10024065
mov edx, eax
imul edx, edx, 0x271
add edx, edi
cmp dword [esi + edx*4 + 0x87c0], ecx
jle 0x1002439c
push 3
push ecx
mov ecx, esp
mov dword [esp + 0x70], esp
push ecx
mov dword [ecx], eax
mov eax, esp
mov ecx, esi
mov dword [esp + 0x74], esp
mov dword [eax], edi
call fcn.10016b50
cmp eax, 3
jl 0x1002439c
mov eax, dword [esp + 0x64]
mov dword [eax], edi
mov ecx, dword [esp + 0x54]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x4c
ret
cmp ecx, eax
jne 0x1002439c
mov edi, dword [esi + edi*4 + 0x5b08]
lea eax, [edi + edi*4]
cmp dword [esi + eax*8 + 0x2780], 2
lea eax, [esi + eax*8 + 0x2778]
jne 0x1002439c
push ecx
mov ecx, dword [esp + 0x1c]
mov eax, esp
lea edx, [esp + 0x40]
xor ebx, ebx
mov dword [esp + 0x24], esp
mov dword [eax], ecx
push edx
mov ecx, esi
mov dword [esp + 0x24], ebx
mov dword [esp + 0x70], ebx
call fcn.10019ad0
mov eax, dword [esp + 0x4c]
sub eax, dword [esp + 0x48]
mov dword [esp + 0x5c], 7
sar eax, 2
cmp ebx, eax
jae 0x1002418f
mov eax, dword [esp + 0x48]
mov eax, dword [eax + ebx*4]
mov eax, dword [esi + eax*4 + 0x5b08]
lea ecx, [eax + eax*4]
cmp dword [esi + ecx*8 + 0x2780], 1
lea ecx, [esi + ecx*8 + 0x2778]
jne 0x1002414b
lea edx, [eax + eax*4]
mov edi, dword [esi + edx*8 + 0x2778]
lea eax, [eax + eax*4]
mov ebp, dword [esi + eax*8 + 0x2784]
lea ecx, [esi + edx*8 + 0x2778]
lea eax, [esi + eax*8 + 0x2778]
inc edi
cmp ebp, dword [esi + 0x2720]
je 0x1002414b
push ecx
mov ecx, dword [esp + 0x74]
mov eax, esp
mov dword [esp + 0x24], esp
push ecx
mov dword [eax], ecx
mov eax, esp
mov ecx, esi
mov dword [esp + 0x28], esp
mov dword [eax], ebp
call fcn.10001160
test al, al
je 0x1002413d
mov edi, 1
cmp edi, dword [esp + 0x68]
jle 0x1002414b
mov dword [esp + 0x68], edi
mov dword [esp + 0x1c], ebp
mov eax, dword [esp + 0x4c]
sub eax, dword [esp + 0x48]
inc ebx
sar eax, 2
cmp ebx, eax
jb 0x100240ca
cmp dword [esp + 0x68], 0
jle 0x1002418f
mov edx, dword [esp + 0x1c]
mov esi, dword [esp + 0x64]
lea ecx, [esp + 0x3c]
mov dword [esi], edx
call fcn.1003a700
mov eax, esi
mov ecx, dword [esp + 0x54]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x4c
ret
mov eax, dword [esp + 0x18]
mov eax, dword [esi + eax*4 + 0x5b08]
lea ecx, [eax + eax*4]
mov ebp, dword [esi + ecx*8 + 0x2784]
lea eax, [esi + ecx*8 + 0x2778]
cmp ebp, dword [esp + 0x6c]
jne 0x100241c9
mov edx, dword [esp + 0x18]
push 1
push ecx
mov eax, esp
mov ecx, esi
mov dword [esp + 0x70], esp
mov dword [eax], edx
call fcn.100010a0
mov ebp, eax
cmp ebp, dword [esi + 0x2720]
je 0x10024393
push 3
push ecx
mov ecx, dword [esp + 0x78]
mov eax, esp
mov dword [esp + 0x70], esp
push ecx
mov dword [eax], ecx
mov eax, esp
mov ecx, esi
mov dword [esp + 0x74], esp
mov dword [eax], ebp
call fcn.10016b50
cmp eax, 3
jl 0x1002421e
mov esi, dword [esp + 0x64]
lea ecx, [esp + 0x3c]
mov dword [esi], ebp
call fcn.1003a700
mov eax, esi
mov ecx, dword [esp + 0x54]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x4c
ret
cmp eax, 2
jne 0x10024393
mov ebx, dword [esp + 0x14]
push ecx
mov eax, esp
mov dword [esp + 0x6c], esp
push ecx
mov dword [eax], ebx
mov eax, esp
lea edi, [ebp + 0x17]
mov ecx, esi
mov dword [esp + 0x70], esp
mov dword [eax], edi
call fcn.10001010
test al, al
je 0x10024285
push ecx
mov eax, esp
mov ecx, esi
mov dword [esp + 0x6c], esp
mov dword [eax], edi
call fcn.10001080
cmp eax, 2
jne 0x10024285
push ecx
mov eax, esp
mov dword [esp + 0x6c], esp
push ecx
mov dword [eax], edi
mov edx, dword [esp + 0x74]
mov eax, esp
mov ecx, esi
mov dword [esp + 0x70], esp
mov dword [eax], edx
call fcn.100171b0
test al, al
jne 0x100241f9
push ecx
mov eax, esp
mov dword [esp + 0x6c], esp
push ecx
mov dword [eax], ebx
mov eax, esp
add edi, 0xffffffe8
mov ecx, esi
mov dword [esp + 0x70], esp
mov dword [eax], edi
call fcn.10001010
test al, al
je 0x100242df
push ecx
mov eax, esp
mov ecx, esi
mov dword [esp + 0x6c], esp
mov dword [eax], edi
call fcn.10001080
cmp eax, 2
jne 0x100242df
push ecx
mov eax, esp
mov dword [esp + 0x6c], esp
push ecx
mov dword [eax], edi
mov ecx, dword [esp + 0x74]
mov eax, esp
mov dword [eax], ecx
mov ecx, esi
mov dword [esp + 0x70], esp
call fcn.100171b0
test al, al
jne 0x100241f9
push ecx
mov eax, esp
mov dword [esp + 0x6c], esp
push ecx
mov dword [eax], ebx
mov eax, esp
add edi, 2
mov ecx, esi
mov dword [esp + 0x70], esp
mov dword [eax], edi
call fcn.10001010
test al, al
je 0x10024339
push ecx
mov eax, esp
mov ecx, esi
mov dword [esp + 0x6c], esp
mov dword [eax], edi
call fcn.10001080
cmp eax, 2
jne 0x10024339
push ecx
mov eax, esp
mov dword [esp + 0x6c], esp
push ecx
mov dword [eax], edi
mov edx, dword [esp + 0x74]
mov eax, esp
mov ecx, esi
mov dword [esp + 0x70], esp
mov dword [eax], edx
call fcn.100171b0
test al, al
jne 0x100241f9
push ecx
mov eax, esp
mov dword [esp + 0x6c], esp
push ecx
mov dword [eax], ebx
mov eax, esp
add edi, 0xffffffe8
mov ecx, esi
mov dword [esp + 0x70], esp
mov dword [eax], edi
call fcn.10001010
test al, al
je 0x10024393
push ecx
mov eax, esp
mov ecx, esi
mov dword [esp + 0x6c], esp
mov dword [eax], edi
call fcn.10001080
cmp eax, 2
jne 0x10024393
push ecx
mov eax, esp
mov dword [esp + 0x6c], esp
push ecx
mov dword [eax], edi
mov ecx, dword [esp + 0x74]
mov eax, esp
mov dword [eax], ecx
mov ecx, esi
mov dword [esp + 0x70], esp
call fcn.100171b0
test al, al
jne 0x100241f9
lea ecx, [esp + 0x3c]
call fcn.1003a700
mov eax, dword [esp + 0x64]
mov dword [eax], 0
mov ecx, dword [esp + 0x54]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x4c
ret