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

Disassembly:
mov edi, edi
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x8c
mov eax, dword [0x101d32d0]
xor eax, esp
mov dword [esp + 0x88], eax
mov eax, dword [ebp + 0xc]
push ebx
mov ebx, ecx
mov dword [esp + 8], eax
mov ecx, dword [ebp + 8]
mov dword [esp + 0x38], ebx
mov dword [esp + 0xc], ecx
push esi
push edi
test ecx, ecx
jne 0x1014c25b
neg eax
sbb eax, eax
and eax, 0x80004005
jmp 0x1014db67
cmp dword [ecx + 4], 0xd
jne 0x1014db62
mov edi, dword [ecx + 0x18]
xor eax, eax
imul edi, dword [ecx + 0x14]
mov esi, eax
mov dword [esp + 0x2c], eax
mov dword [esp + 0x1c], eax
mov dword [esp + 0x18], eax
mov dword [esp + 0x28], eax
mov dword [esp + 0x30], eax
mov eax, dword [ecx + 0x20]
mov dword [esp + 0x44], edi
mov dword [esp + 0x20], esi
test eax, eax
je 0x1014c2aa
cmp dword [eax + 4], 0xd
jne 0x1014c2aa
mov esi, eax
mov dword [esp + 0x20], eax
mov edx, dword [esi + 0x18]
imul edx, dword [esi + 0x14]
mov dword [esp + 0x2c], edx
mov eax, dword [ecx + 0x24]
test eax, eax
je 0x1014c2c6
cmp dword [eax + 4], 0xd
jne 0x1014c2c6
mov edx, dword [eax + 0x18]
imul edx, dword [eax + 0x14]
mov dword [esp + 0x30], eax
mov dword [esp + 0x1c], edx
test esi, esi
je 0x1014c2e1
push dword [esp + 0x2c]
mov ecx, ebx
call fcn.10158b4e
mov dword [esp + 0x18], eax
test eax, eax
je 0x1014d6d1
cmp dword [esp + 0x30], 0
je 0x1014c2ff
push dword [esp + 0x1c]
mov ecx, ebx
call fcn.10158b4e
mov dword [esp + 0x28], eax
test eax, eax
je 0x1014d6d1
mov eax, dword [esp + 0x14]
xor edx, edx
mov dword [esp + 0x34], edx
mov dword [esp + 0x38], 1
mov ecx, dword [eax + 0x1c]
cmp ecx, 0x14
jg 0x1014c333
je 0x1014c338
sub ecx, edx
je 0x1014c32e
sub ecx, 1
je 0x1014c32e
sub ecx, 1
je 0x1014c32e
sub ecx, 1
jne 0x1014c340
mov edx, dword [ebp + 0x10]
jmp 0x1014c33c
sub ecx, 0x15
jne 0x1014c324
mov edx, dword [esp + 0x38]
mov dword [esp + 0x34], edx
cmp dword [eax + 0x28], 0
je 0x1014c372
test esi, esi
je 0x1014c361
push edx
push dword [esp + 0x1c]
mov ecx, ebx
push esi
call fcn.1014c216
mov esi, eax
test esi, esi
js 0x1014db48
mov esi, dword [esp + 0x30]
test esi, esi
je 0x1014c3bc
push 0
push dword [esp + 0x2c]
push esi
jmp 0x1014c3a7
mov esi, dword [esp + 0x30]
test esi, esi
je 0x1014c396
push 0
push dword [esp + 0x2c]
mov ecx, ebx
push esi
call fcn.1014c216
mov esi, eax
test esi, esi
js 0x1014db48
mov esi, dword [esp + 0x30]
mov ecx, dword [esp + 0x20]
test ecx, ecx
je 0x1014c3c0
push dword [esp + 0x34]
push dword [esp + 0x1c]
push ecx
mov ecx, ebx
call fcn.1014c216
mov esi, eax
test esi, esi
js 0x1014db48
mov esi, dword [esp + 0x30]
mov ecx, dword [esp + 0x20]
mov edx, dword [esp + 0x14]
mov eax, dword [edx + 0x1c]
cmp eax, 0x1a
ja case.default.0x1014c3de
fldz
fstp qword [esp + 0x48]
mov dword [esp + 0x3c], 4
jmp dword [eax*4 + 0x1014db7e]
test ecx, ecx
je 0x1014c4b8
mov esi, dword [esp + 0x10]
test esi, esi
je 0x1014c628
mov eax, dword [esp + 0x2c]
cmp eax, 1
jne 0x1014c41f
xor ecx, ecx
test edi, edi
je 0x1014c723
mov ebx, dword [esp + 0x18]
mov eax, dword [ebx]
mov dword [esi + ecx*4], eax
inc ecx
cmp ecx, edi
jb 0x1014c410
jmp 0x1014c4af
cmp edi, eax
je 0x1014c563
mov ebx, dword [edx + 0x14]
mov dword [esp + 0x24], ebx
mov ebx, dword [esp + 0x38]
cmp dword [edx + 0x14], ebx
mov ebx, dword [esp + 0x40]
jne 0x1014c443
cmp edi, eax
jb 0x1014c563
mov eax, dword [edx + 0x14]
cmp eax, dword [ecx + 0x14]
ja 0x1014db43
mov eax, dword [edx + 0x18]
cmp eax, dword [ecx + 0x18]
ja 0x1014db43
xor edx, edx
mov dword [esp + 0x1c], edx
cmp dword [esp + 0x24], edx
jbe 0x1014c723
mov ebx, dword [esp + 0x20]
mov edi, dword [esp + 0x14]
mov ecx, dword [edi + 0x18]
mov eax, ecx
mov esi, dword [esp + 0x18]
shl eax, 2
push eax
mov eax, dword [ebx + 0x18]
imul eax, edx
imul ecx, edx
lea eax, [esi + eax*4]
mov esi, dword [esp + 0x14]
push eax
lea eax, [esi + ecx*4]
push eax
call sub.api_ms_win_crt_private_l1_1_0.dll_memcpy
mov edx, dword [esp + 0x28]
add esp, 0xc
inc edx
mov dword [esp + 0x1c], edx
cmp edx, dword [edi + 0x14]
jb 0x1014c473
mov edi, dword [esp + 0x44]
mov ebx, dword [esp + 0x40]
jmp 0x1014c723
push edi
push dword [esp + 0x14]
mov ecx, ebx
push dword [edx + 0x20]
call fcn.10158c43
jmp 0x1014d43f
test ecx, ecx
je 0x1014db43
test esi, esi
je 0x1014db43
test edi, edi
je 0x1014d449
mov ecx, dword [esp + 0x18]
mov eax, dword [ebx + 8]
mov ecx, dword [ecx]
cmp ecx, dword [eax + 8]
jae 0x1014c557
lfence
mov eax, dword [eax + 0x14]
mov ecx, dword [eax + ecx*4]
test ecx, ecx
je 0x1014c557
mov esi, dword [ebx + 8]
mov eax, dword [esi + 0x74]
cmp eax, dword [ecx + 4]
jne 0x1014c557
xor ecx, ecx
test edi, edi
je 0x1014c52c
mov esi, dword [esi + 0x14]
mov eax, dword [esp + 0x18]
mov eax, dword [eax + ecx*4]
mov eax, dword [esi + eax*4]
cmp dword [eax + 0x30], 0xffffffff
je 0x1014c5b9
inc ecx
cmp ecx, edi
jb 0x1014c513
push 0
push 0
push dword [esp + 0x30]
mov eax, edi
mov ecx, ebx
push dword [esp + 0x24]
and eax, 0xfffff
or eax, 0x10000000
push eax
push edx
call fcn.10158e34
mov esi, eax
test esi, esi
js 0x1014db48
mov esi, dword [esp + 0x10]
test esi, esi
je 0x1014c628
mov eax, edi
shl eax, 2
push eax
push dword [esp + 0x1c]
push esi
call sub.api_ms_win_crt_private_l1_1_0.dll_memcpy
add esp, 0xc
jmp 0x1014c723
test ecx, ecx
je 0x1014db43
test esi, esi
je 0x1014db43
test edi, edi
je 0x1014d449
xor ecx, ecx
test edi, edi
je 0x1014c52c
mov eax, dword [ebx + 8]
mov esi, dword [eax + 0x14]
mov eax, dword [esp + 0x18]
mov eax, dword [eax + ecx*4]
mov eax, dword [esi + eax*4]
cmp dword [eax + 0x30], 0xffffffff
je 0x1014c5b9
inc ecx
cmp ecx, edi
jb 0x1014c59f
jmp 0x1014c52c
push 0x1002f0e8
push 0
push edx
jmp 0x1014db3a
test ecx, ecx
je 0x1014db43
push edi
mov ecx, ebx
call fcn.10158ae2
mov edx, eax
test edx, edx
je 0x1014d6d1
xor ecx, ecx
test edi, edi
je 0x1014c5f1
mov eax, dword [ebx + 0x20]
mov dword [edx + ecx*4], eax
inc ecx
cmp ecx, edi
jb 0x1014c5e6
mov eax, dword [esp + 0x18]
mov ecx, ebx
push 0
push edx
push eax
push eax
mov eax, edi
and eax, 0xfffff
or eax, 0x20400000
push eax
push dword [esp + 0x28]
call fcn.10158e34
mov esi, eax
test esi, esi
js 0x1014db48
mov esi, dword [esp + 0x10]
test esi, esi
jne 0x1014c563
xor esi, esi
jmp 0x1014db48
test ecx, ecx
je 0x1014db43
push edi
mov ecx, ebx
call fcn.10158ae2
mov edx, eax
test edx, edx
je 0x1014d6d1
xor ecx, ecx
test edi, edi
je 0x1014c5f1
mov eax, dword [ebx + 0x28]
mov dword [edx + ecx*4], eax
inc ecx
cmp ecx, edi
jb 0x1014c64f
jmp 0x1014c5f1
test ecx, ecx
je 0x1014db43
cmp dword [esp + 0x10], 0
je 0x1014c628
lea eax, [edi + edi]
mov ecx, ebx
push eax
call fcn.10158ae2
test eax, eax
je 0x1014d6d1
mov edx, edi
xor ecx, ecx
shl edx, 2
mov dword [esp + ecx*4 + 0x50], eax
inc ecx
add eax, edx
cmp ecx, 2
jb 0x1014c685
push edi
push dword [esp + 0x54]
call fcn.10158c21
mov esi, eax
test esi, esi
js 0x1014db48
push edi
push dword [esp + 0x58]
call fcn.10158c21
mov esi, eax
test esi, esi
js 0x1014db48
push edi
push dword [esp + 0x14]
call fcn.10158c21
mov esi, eax
test esi, esi
js 0x1014db48
push edi
push dword [esp + 0x1c]
mov ecx, ebx
push dword [esp + 0x5c]
push dword [esp + 0x5c]
push dword [esp + 0x24]
call fcn.10158833
mov esi, eax
test esi, esi
js 0x1014db48
push 0x17
push dword [esp + 0x54]
mov eax, edi
push dword [esp + 0x5c]
and eax, 0xfffff
or eax, 0x20300000
push dword [esp + 0x1c]
push eax
push dword [esp + 0x28]
mov ecx, ebx
call fcn.10158e34
mov esi, eax
test esi, esi
js 0x1014db48
mov esi, dword [esp + 0x10]
mov eax, dword [ebx + 0x9c]
cmp edi, eax
jbe 0x1014d4b0
test eax, eax
je 0x1014d45a
add eax, eax
jmp 0x1014d45d
test ecx, ecx
je 0x1014db43
mov edx, dword [esp + 0x10]
test edx, edx
je 0x1014c628
push edi
push edx
call fcn.10158c21
mov esi, eax
test esi, esi
js 0x1014db48
mov eax, edi
push 0
and eax, 0xfffff
push 0
or eax, 0x10100000
push dword [esp + 0x20]
push edx
push eax
push dword [esp + 0x28]
mov ecx, ebx
call fcn.10158e34
mov esi, eax
test esi, esi
js 0x1014db48
jmp 0x1014c71f
test ecx, ecx
je 0x1014db43
mov edx, dword [esp + 0x10]
test edx, edx
je 0x1014c628
push edi
push edx
call fcn.10158c21
mov esi, eax
test esi, esi
js 0x1014db48
push 0
push 0
push dword [esp + 0x20]
mov eax, edi
and eax, 0xfffff
or eax, 0x10000000
jmp 0x1014c779
test ecx, ecx
je 0x1014db43
test esi, esi
je 0x1014db43
mov edx, dword [esp + 0x10]
test edx, edx
je 0x1014c628
push edi
push edx
call fcn.10158c21
mov esi, eax
test esi, esi
js 0x1014db48
mov eax, edi
push 0
push dword [esp + 0x2c]
and eax, 0xfffff
or eax, 0x20400000
jmp 0x1014c775
test ecx, ecx
je 0x1014db43
test esi, esi
je 0x1014db43
cmp dword [esp + 0x10], 0
je 0x1014c628
push edi
mov ecx, ebx
call fcn.10158ae2
mov edx, eax
mov dword [esp + 0x24], edx
test edx, edx
je 0x1014d6d1
push edi
push edx
call fcn.10158c21
mov esi, eax
test esi, esi
js 0x1014db48
push edi
push dword [esp + 0x14]
call fcn.10158c21
mov esi, eax
test esi, esi
js 0x1014db48
push 0
push 0
push dword [esp + 0x30]
mov eax, edi
mov ecx, ebx
and eax, 0xfffff
mov dword [esp + 0x28], eax
or eax, 0x10100000
push edx
push eax
push dword [esp + 0x28]
call fcn.10158e34
mov esi, eax
test esi, esi
js 0x1014db48
mov eax, dword [esp + 0x1c]
push 0
push dword [esp + 0x28]
or eax, 0x20400000
push dword [esp + 0x20]
jmp 0x1014c705
test ecx, ecx
je 0x1014db43
test esi, esi
je 0x1014db43
mov edx, dword [esp + 0x10]
test edx, edx
je 0x1014c628
push edi
push edx
call fcn.10158c21
mov esi, eax
test esi, esi
js 0x1014db48
push 0x17
push dword [esp + 0x2c]
push dword [esp + 0x20]
mov eax, edi
and eax, 0xfffff
or eax, 0x20200000
jmp 0x1014c779
test ecx, ecx
je 0x1014db43
test esi, esi
je 0x1014db43
mov edx, dword [esp + 0x10]
test edx, edx
je 0x1014c628
push edi
push edx
call fcn.10158c21
mov esi, eax
test esi, esi
js 0x1014db48
push 0x17
push dword [esp + 0x1c]
push dword [esp + 0x30]
jmp 0x1014c8e5
test ecx, ecx
je 0x1014db43
test esi, esi
je 0x1014db43
mov edx, dword [esp + 0x10]
test edx, edx
je 0x1014c628
push edi
push edx
call fcn.10158c21
mov esi, eax
test esi, esi
js 0x1014db48
push 0x17
push dword [esp + 0x1c]
push dword [esp + 0x30]
mov eax, edi
and eax, 0xfffff
or eax, 0x20300000
jmp 0x1014c779
test ecx, ecx
je 0x1014db43
test esi, esi
je 0x1014db43
mov edx, dword [esp + 0x10]
test edx, edx
je 0x1014c628
push edi
push edx
call fcn.10158c21
mov esi, eax
test esi, esi
js 0x1014db48
push 0x17
push dword [esp + 0x2c]
push dword [esp + 0x20]
jmp 0x1014c966
test ecx, ecx
je 0x1014db43
test esi, esi
je 0x1014db43
cmp dword [esp + 0x10], 0
je 0x1014c628
mov esi, edi
mov ecx, ebx
shl esi, 2
push esi
call fcn.10158ae2
test eax, eax
je 0x1014d6d1
xor ecx, ecx
mov edx, eax
mov dword [esp + ecx*4 + 0x60], edx
inc ecx
add edx, esi
cmp ecx, 4
jb 0x1014c9e4
push esi
push eax
call fcn.10158c21
mov esi, eax
test esi, esi
js 0x1014db48
push edi
push dword [esp + 0x14]
call fcn.10158c21
mov esi, eax
test esi, esi
js 0x1014db48
push 0
push 0
push dword [esp + 0x30]
mov eax, edi
mov ecx, ebx
push dword [esp + 0x6c]
and eax, 0xfffff
mov dword [esp + 0x2c], eax
or eax, 0x10100000
push eax
push dword [esp + 0x28]
call fcn.10158e34
mov esi, eax
test esi, esi
js 0x1014db48
mov eax, dword [esp + 0x1c]
mov ecx, ebx
push 0
push dword [esp + 0x64]
or eax, 0x20400000
push dword [esp + 0x20]
push dword [esp + 0x70]
push eax
push dword [esp + 0x28]
call fcn.10158e34
mov esi, eax
test esi, esi
js 0x1014db48
push edi
push dword [esp + 0x68]
mov ecx, ebx
push dword [esp + 0x74]
push dword [esp + 0x74]
push dword [esp + 0x24]
call fcn.10158833
mov esi, eax
test esi, esi
js 0x1014db48
mov eax, dword [esp + 0x1c]
push 0x17
push dword [esp + 0x6c]
push dword [esp + 0x74]
jmp 0x1014c700
test ecx, ecx
je 0x1014db43
test esi, esi
je 0x1014db43
cmp dword [esp + 0x10], 0
je 0x1014c628
mov esi, edi
mov ecx, ebx
shl esi, 2
push esi
call fcn.10158ae2
test eax, eax
je 0x1014d6d1
xor ecx, ecx
mov edx, eax
mov dword [esp + ecx*4 + 0x60], edx
inc ecx
add edx, esi
cmp ecx, 4
jb 0x1014cadd
push esi
push eax
call fcn.10158c21
mov esi, eax
test esi, esi
js 0x1014db48
push edi
push dword [esp + 0x14]
call fcn.10158c21
mov esi, eax
test esi, esi
js 0x1014db48
push 0
push 0
push dword [esp + 0x30]
mov eax, edi
mov ecx, ebx
push dword [esp + 0x6c]
and eax, 0xfffff
mov dword [esp + 0x2c], eax
or eax, 0x10100000
push eax
push dword [esp + 0x28]
call fcn.10158e34
mov esi, eax
test esi, esi
js 0x1014db48
mov eax, dword [esp + 0x1c]
mov ecx, ebx
push 0
push dword [esp + 0x64]
or eax, 0x20400000
push dword [esp + 0x20]
push dword [esp + 0x70]
push eax
push dword [esp + 0x28]
call fcn.10158e34
mov esi, eax
test esi, esi
js 0x1014db48
push edi
push dword [esp + 0x68]
mov ecx, ebx
push dword [esp + 0x74]
push dword [esp + 0x74]
push dword [esp + 0x24]
call fcn.10158833
mov esi, eax
test esi, esi
js 0x1014db48
mov eax, dword [esp + 0x1c]
push 0x17
push dword [esp + 0x6c]
push dword [esp + 0x74]
or eax, 0x20200000
jmp 0x1014c705
test ecx, ecx
je 0x1014db43
test esi, esi
je 0x1014db43
mov edx, dword [esp + 0x10]
test edx, edx
je 0x1014c628
xor esi, esi
test edi, edi
je 0x1014cc13
mov eax, dword [ebx + 8]
mov ecx, dword [esp + 0x28]
mov eax, dword [eax + 0x14]
mov dword [esp + 0x1c], eax
mov eax, dword [esp + 0x18]
sub eax, ecx
mov dword [esp + 0x24], eax
mov edx, dword [esp + 0x1c]
mov eax, dword [eax + ecx]
mov eax, dword [edx + eax*4]
mov edx, dword [esp + 0x10]
test byte [eax], 1
je 0x1014cc40
mov ebx, dword [esp + 0x1c]
mov eax, dword [ecx]
mov eax, dword [ebx + eax*4]
mov ebx, dword [esp + 0x40]
test byte [eax], 1
je 0x1014cc40
add ecx, dword [esp + 0x3c]
inc esi
mov eax, dword [esp + 0x24]
cmp esi, edi
jb 0x1014cbe1
push edi
push edx
call fcn.10158c21
mov esi, eax
test esi, esi
js 0x1014db48
push 0x17
push dword [esp + 0x2c]
mov eax, edi
push dword [esp + 0x20]
and eax, 0xfffff
push edx
or eax, 0x20500000
jmp 0x1014c709
imul eax, edi, 3
mov ecx, ebx
push eax
call fcn.10158ae2
test eax, eax
je 0x1014d6d1
mov edx, edi
xor ecx, ecx
shl edx, 2
mov dword [esp + ecx*4 + 0x50], eax
inc ecx
add eax, edx
cmp ecx, 3
jb 0x1014cc5a
push edi
push dword [esp + 0x54]
call fcn.10158c21
mov esi, eax
test esi, esi
js 0x1014db48
push edi
push dword [esp + 0x58]
call fcn.10158c21
mov esi, eax
test esi, esi
js 0x1014db48
push edi
push dword [esp + 0x5c]
call fcn.10158c21
mov esi, eax
test esi, esi
js 0x1014db48
push edi
push dword [esp + 0x14]
call fcn.10158c21
mov esi, eax
test esi, esi
js 0x1014db48
push 0
push dword [esp + 0x2c]
mov eax, edi
mov ecx, ebx
push dword [esp + 0x20]
and eax, 0xfffff
push dword [esp + 0x5c]
mov dword [esp + 0x34], eax
or eax, 0x20500000
push eax
push dword [esp + 0x28]
call fcn.10158e34
mov esi, eax
test esi, esi
js 0x1014db48
push edi
push dword [esp + 0x54]
mov ecx, ebx
push dword [esp + 0x60]
push dword [esp + 0x60]
push dword [esp + 0x24]
call fcn.10158833
mov esi, eax
test esi, esi
js 0x1014db48
mov eax, dword [esp + 0x24]
push 0x17
push dword [esp + 0x58]
push dword [esp + 0x60]
jmp 0x1014cb9d
test ecx, ecx
je 0x1014db43
test esi, esi
je 0x1014db43
cmp dword [esp + 0x10], 0
je 0x1014c628
mov esi, edi
mov ecx, ebx
shl esi, 2
push esi
call fcn.10158ae2
test eax, eax
je 0x1014d6d1
mov edx, dword [esp + 0x3c]
xor ecx, ecx
mov dword [esp + ecx*4 + 0x50], eax
inc ecx
add eax, esi
cmp ecx, edx
jb 0x1014cd55
push edi
push dword [esp + 0x54]
call fcn.10158c21
mov esi, eax
test esi, esi
js 0x1014db48
push edi
push dword [esp + 0x58]
call fcn.10158c21
mov esi, eax
test esi, esi
js 0x1014db48
push edi
push dword [esp + 0x5c]
call fcn.10158c21
mov esi, eax
test esi, esi
js 0x1014db48
push edi
push dword [esp + 0x60]
call fcn.10158c21
mov esi, eax
test esi, esi
js 0x1014db48
push edi
push dword [esp + 0x14]
call fcn.10158c21
mov esi, eax
test esi, esi
js 0x1014db48
push edi
push dword [esp + 0x1c]
mov ecx, ebx
push 0
push dword [esp + 0x5c]
push dword [esp + 0x24]
call fcn.10158833
mov esi, eax
test esi, esi
js 0x1014db48
push edi
push dword [esp + 0x2c]
mov ecx, ebx
push 0
push dword [esp + 0x60]
push dword [esp + 0x24]
call fcn.10158833
mov esi, eax
test esi, esi
js 0x1014db48
push dword [esp + 0x3c]
mov eax, edi
mov ecx, ebx
push dword [esp + 0x58]
and eax, 0xfffff
push dword [esp + 0x58]
mov dword [esp + 0x28], eax
or eax, 0x20400000
push dword [esp + 0x64]
push eax
push dword [esp + 0x28]
call fcn.10158e34
mov esi, eax
test esi, esi
js 0x1014db48
mov eax, dword [esp + 0x1c]
mov ecx, ebx
push 8
push 0
push dword [esp + 0x60]
or eax, 0x10100000
push dword [esp + 0x68]
push eax
push dword [esp + 0x28]
call fcn.10158e34
mov esi, eax
test esi, esi
js 0x1014db48
mov eax, dword [esp + 0x1c]
push 0x17
push dword [esp + 0x5c]
push dword [esp + 0x64]
jmp 0x1014cb9d
test ecx, ecx
je 0x1014db43
test esi, esi
je 0x1014db43
mov edx, dword [esp + 0x10]
test edx, edx
je 0x1014c628
push edi
push edx
call fcn.10158c21
mov esi, eax
test esi, esi
js 0x1014db48
mov eax, edi
push 0
push dword [esp + 0x2c]
and eax, 0xfffff
or eax, 0x20500000
jmp 0x1014c775
test ecx, ecx
je 0x1014db43
test esi, esi
je 0x1014db43
cmp dword [esp + 0x10], 0
je 0x1014c628
push edi
mov ecx, ebx
call fcn.10158ae2
mov edx, eax
mov dword [esp + 0x24], edx
test edx, edx
je 0x1014d6d1
push edi
push edx
call fcn.10158c21
mov esi, eax
test esi, esi
js 0x1014db48
push edi
push dword [esp + 0x14]
call fcn.10158c21
mov esi, eax
test esi, esi
js 0x1014db48
push 0
push 0
push dword [esp + 0x30]
mov eax, edi
mov ecx, ebx
and eax, 0xfffff
mov dword [esp + 0x28], eax
or eax, 0x10300000
push edx
push eax
push dword [esp + 0x28]
call fcn.10158e34
mov esi, eax
test esi, esi
js 0x1014db48
mov eax, dword [esp + 0x1c]
push 0
push dword [esp + 0x28]
push dword [esp + 0x20]
push dword [esp + 0x1c]
jmp 0x1014cc36
test ecx, ecx
je 0x1014db43
test esi, esi
je 0x1014db43
cmp dword [esp + 0x10], 0
je 0x1014c628
mov eax, edi
mov ecx, ebx
shl eax, 3
push eax
call fcn.10158ae2
test eax, eax
je 0x1014d6d1
mov edx, edi
xor ecx, ecx
shl edx, 2
mov dword [esp + ecx*4 + 0x60], eax
inc ecx
add eax, edx
cmp ecx, 8
jb 0x1014cf8f
xor edx, edx
push edi
push dword [esp + edx*4 + 0x64]
call fcn.10158c21
mov esi, eax
test esi, esi
js 0x1014db48
inc edx
cmp edx, 8
jb 0x1014cf9d
push edi
push dword [esp + 0x14]
call fcn.10158c21
mov esi, eax
test esi, esi
js 0x1014db48
push 0
push dword [esp + 0x2c]
mov eax, edi
mov ecx, ebx
push dword [esp + 0x20]
and eax, 0xfffff
push dword [esp + 0x6c]
mov dword [esp + 0x30], eax
or eax, 0x20500000
push eax
push dword [esp + 0x28]
mov dword [esp + 0x34], eax
call fcn.10158e34
mov esi, eax
test esi, esi
js 0x1014db48
mov eax, dword [esp + 0x20]
mov ecx, ebx
push 0
push 0
push dword [esp + 0x68]
or eax, 0x10100000
push dword [esp + 0x70]
mov dword [esp + 0x34], eax
push eax
push dword [esp + 0x28]
call fcn.10158e34
mov esi, eax
test esi, esi
js 0x1014db48
mov eax, dword [esp + 0x20]
mov ecx, ebx
push 0x17
push dword [esp + 0x68]
or eax, 0x20300000
push dword [esp + 0x68]
push dword [esp + 0x74]
push eax
push dword [esp + 0x28]
call fcn.10158e34
mov esi, eax
test esi, esi
js 0x1014db48
push 0
push 0
push dword [esp + 0x30]
mov ecx, ebx
push dword [esp + 0x78]
push dword [esp + 0x34]
push dword [esp + 0x28]
call fcn.10158e34
mov esi, eax
test esi, esi
js 0x1014db48
push edi
push dword [esp + 0x6c]
mov ecx, ebx
push dword [esp + 0x30]
push dword [esp + 0x78]
push dword [esp + 0x80]
push dword [esp + 0x28]
call fcn.10157e6f
mov esi, eax
test esi, esi
js 0x1014db48
mov eax, dword [esp + 0x20]
mov ecx, ebx
push 0x40
push 0
push dword [esp + 0x78]
or eax, 0x10300000
push dword [esp + 0x80]
push eax
push dword [esp + 0x28]
call fcn.10158e34
mov esi, eax
test esi, esi
js 0x1014db48
push 0
push dword [esp + 0x78]
mov ecx, ebx
push dword [esp + 0x20]
push dword [esp + 0x84]
push dword [esp + 0x2c]
push dword [esp + 0x28]
call fcn.10158e34
mov esi, eax
test esi, esi
js 0x1014db48
push dword [esp + 0x3c]
mov eax, dword [esp + 0x24]
mov ecx, ebx
push 0
push dword [esp + 0x80]
or eax, 0x10400000
push dword [esp + 0x88]
push eax
push dword [esp + 0x28]
call fcn.10158e34
mov esi, eax
test esi, esi
js 0x1014db48
push 0
push dword [esp + 0x80]
push dword [esp + 0x78]
push dword [esp + 0x1c]
push dword [esp + 0x2c]
jmp 0x1014c70a
test esi, esi
je 0x1014db43
push dword [ebp + 0x10]
push dword [esp + 0x2c]
push dword [ecx + 0x10]
mov ecx, ebx
push dword [esp + 0x38]
push dword [esp + 0x28]
push edi
push dword [esp + 0x28]
push edx
call fcn.10154fcb
jmp 0x1014d43f
test ecx, ecx
je 0x1014db43
mov ecx, dword [edx + 0x24]
test ecx, ecx
je 0x1014db43
cmp dword [ecx + 4], 0xe
jne 0x1014d1c3
cmp dword [ecx + 0x10], 2
jne 0x1014db43
mov esi, dword [esp + 0x10]
test esi, esi
je 0x1014c628
mov eax, edi
shl eax, 2
push eax
mov eax, dword [ecx + 0x18]
mov ecx, dword [esp + 0x1c]
lea eax, [ecx + eax*4]
push eax
jmp 0x1014c56d
mov eax, dword [esp + 0x38]
cmp dword [ecx + 4], eax
jne 0x1014db43
mov esi, dword [esp + 0x10]
test esi, esi
je 0x1014c628
xor edx, edx
test edi, edi
je 0x1014c723
mov ebx, dword [esp + 0x18]
mov eax, dword [ecx + 8]
mov eax, dword [eax + 0x18]
mov eax, dword [ebx + eax*4]
mov dword [esi + edx*4], eax
inc edx
mov ecx, dword [ecx + 0xc]
cmp edx, edi
jb 0x1014d1ea
jmp 0x1014c4af
test ecx, ecx
je 0x1014db43
test esi, esi
je 0x1014db43
cmp dword [esp + 0x10], 0
je 0x1014c628
imul eax, edi, 3
mov ecx, ebx
push eax
call fcn.10158ae2
test eax, eax
je 0x1014d6d1
mov edx, edi
xor ecx, ecx
shl edx, 2
mov dword [esp + ecx*4 + 0x50], eax
inc ecx
add eax, edx
cmp ecx, 3
jb 0x1014d238
mov edx, dword [esp + 0x50]
xor eax, eax
mov dword [esp + 0x20], eax
mov dword [esp + 0x30], edx
test edi, edi
je 0x1014d310
mov ecx, dword [esp + 0x18]
mov esi, edx
mov edx, dword [esp + 0x28]
sub ecx, edx
mov dword [esp + 0x1c], ecx
lea eax, [edx + edi*4]
sub edx, esi
mov dword [esp + 0x34], eax
mov dword [esp + 0x2c], edx
lea eax, [esi + edx]
lea edx, [esp + 0x60]
mov dword [esp + 0x24], eax
push edx
push dword [eax + ecx]
mov ecx, ebx
call fcn.1015a71a
test eax, eax
js 0x1014d308
fld qword [esp + 0x60]
fld qword [esp + 0x48]
fcom st(1)
fnstsw ax
test ah, 5
jnp 0x1014d2cd
fld qword [esp + 0x68]
fcom st(1)
fnstsw ax
test ah, 5
jnp 0x1014d2cb
fxch st(2)
fucomp st(1)
fnstsw ax
test ah, 0x44
jp 0x1014d304
fucompp
fnstsw ax
test ah, 0x44
jp 0x1014d308
mov ecx, dword [esp + 0x34]
mov eax, ecx
jmp 0x1014d2d9
fstp st(2)
mov eax, dword [esp + 0x24]
fstp st(1)
mov ecx, dword [esp + 0x34]
fstp st(0)
mov eax, dword [eax]
add ecx, dword [esp + 0x3c]
mov edx, dword [esp + 0x2c]
mov dword [esi], eax
mov eax, dword [esp + 0x20]
add esi, dword [esp + 0x3c]
inc eax
mov dword [esp + 0x34], ecx
mov ecx, dword [esp + 0x1c]
mov dword [esp + 0x20], eax
cmp eax, edi
jb 0x1014d277
jmp 0x1014d30c
fstp st(1)
fstp st(0)
mov eax, dword [esp + 0x20]
mov edx, dword [esp + 0x30]
push edi
cmp eax, edi
jne 0x1014d336
mov edx, dword [esp + 0x14]
push edx
call fcn.10158c21
mov esi, eax
test esi, esi
js 0x1014db48
push 0
push 0
push dword [esp + 0x38]
jmp 0x1014c7bf
push edx
call fcn.10158c21
mov esi, eax
test esi, esi
js 0x1014db48
push edi
push dword [esp + 0x58]
call fcn.10158c21
mov esi, eax
test esi, esi
js 0x1014db48
push edi
push dword [esp + 0x5c]
call fcn.10158c21
mov esi, eax
test esi, esi
js 0x1014db48
push edi
push dword [esp + 0x1c]
mov ecx, ebx
push dword [esp + 0x5c]
push edx
push dword [esp + 0x24]
call fcn.10158833
mov esi, eax
test esi, esi
js 0x1014db48
push 0x17
push dword [esp + 0x34]
mov eax, edi
mov ecx, ebx
push dword [esp + 0x5c]
and eax, 0xfffff
push dword [esp + 0x64]
or eax, 0x20200000
push eax
push dword [esp + 0x28]
call fcn.10158e34
mov esi, eax
test esi, esi
js 0x1014db48
mov eax, dword [esp + 0x28]
mov ecx, ebx
push edi
push dword [esp + 0x5c]
push eax
lea eax, [eax + edi*4]
push eax
push dword [esp + 0x20]
push dword [esp + 0x28]
call fcn.10157e6f
jmp 0x1014c715
lea eax, [esp + 0x24]
mov ecx, ebx
push eax
push dword [edx + 0x20]
call fcn.1015bed5
mov ecx, eax
mov eax, dword [esp + 0x14]
test ecx, ecx
jne 0x1014d414
push dword [eax + 0x38]
push 0x1002f10c
push 0xdb6
push eax
push ebx
call fcn.1015c202
add esp, 0x14
jmp 0x1014db43
inc dword [ebx + 0x38]
push 0
push 0
push dword [esp + 0x18]
push dword [eax + 0x24]
push ecx
push dword [esp + 0x38]
mov ecx, ebx
call fcn.1015446e
dec dword [ebx + 0x38]
jmp 0x1014d43f
push dword [esp + 0x10]
mov ecx, ebx
push edx
call fcn.1014dbf0
mov esi, eax
test esi, esi
js 0x1014db48
mov esi, dword [esp + 0x10]
test esi, esi
je 0x1014c628
jmp 0x1014c723
push 0x10
pop eax
mov dword [esp + 0x34], eax
cmp eax, edi
jae 0x1014d46f
add eax, eax
cmp eax, edi
jb 0x1014d465
mov dword [esp + 0x34], eax
xor ecx, ecx
add eax, eax
mul dword [esp + 0x3c]
seto cl
neg ecx
or ecx, eax
call fcn.101055aa
mov dword [esp + 0x24], eax
test eax, eax
je 0x1014d6d1
push dword [ebx + 0x98]
call dword [sym.imp.PhotoBase.dll_void___cdecl_BasePrivate::Delete_void__]
mov eax, dword [esp + 0x28]
mov dword [ebx + 0x98], eax
mov eax, dword [esp + 0x38]
pop ecx
mov dword [ebx + 0x9c], eax
mov eax, dword [ebx + 0x98]
mov ecx, ebx
mov dword [esp + 0x30], eax
lea eax, [eax + edi*4]
push eax
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0x18]
push dword [eax + 0x10]
call fcn.101597e2
xor edx, edx
and dword [esp + 0x2c], edx
and dword [esp + 0x1c], edx
mov dword [esp + 0x20], edx
test edi, edi
je 0x1014c628
mov ecx, dword [esp + 0x30]
mov eax, esi
sub eax, dword [esp + 0x34]
mov dword [esp + 0x24], eax
mov esi, dword [esp + 0x24]
lea edx, [ecx + edi*4]
mov eax, dword [ebx + 8]
mov edx, dword [edx + esi]
mov esi, dword [esp + 0x10]
cmp edx, dword [eax + 8]
jae 0x1014db2a
lfence
mov eax, dword [eax + 0x14]
mov edx, dword [eax + edx*4]
test edx, edx
je 0x1014db2a
mov eax, dword [ebx + 8]
mov eax, dword [eax + 0x74]
cmp eax, dword [edx + 4]
je 0x1014d55d
test byte [ecx + edi*4], 1
je 0x1014d546
test byte [edx], 1
jne 0x1014d546
mov eax, dword [esp + 0x38]
mov dword [ecx], eax
mov eax, dword [esp + 0x20]
inc eax
mov dword [esp + 0x20], eax
jmp 0x1014d564
test byte [ecx + edi*4], 2
je 0x1014d55d
test byte [edx], 2
jne 0x1014d55d
inc dword [esp + 0x2c]
mov dword [ecx], 2
jmp 0x1014d560
and dword [ecx], 0
mov eax, dword [esp + 0x20]
mov edx, dword [esp + 0x1c]
add ecx, 4
inc edx
mov dword [esp + 0x1c], edx
cmp edx, edi
jb 0x1014d4f4
test eax, eax
je 0x1014d6b4
mov esi, eax
mov ecx, ebx
shl esi, 2
push esi
call fcn.10158ae2
test eax, eax
je 0x1014d6d1
mov edx, dword [esp + 0x3c]
xor ecx, ecx
mov dword [esp + ecx*4 + 0x60], eax
inc ecx
add eax, esi
cmp ecx, edx
jb 0x1014d597
mov edx, dword [esp + 0x20]
push edx
push dword [esp + 0x68]
call fcn.10158c21
mov esi, eax
test esi, esi
js 0x1014db48
push edx
push dword [esp + 0x6c]
call fcn.10158c21
mov esi, eax
test esi, esi
js 0x1014db48
mov ebx, dword [esp + 0x30]
mov ecx, dword [esp + 0x10]
sub ebx, ecx
mov eax, dword [esp + 0x60]
mov esi, dword [esp + 0x6c]
sub eax, esi
mov dword [esp + 0x50], eax
mov eax, edi
mov edi, dword [esp + 0x50]
mov dword [esp + 0x1c], ebx
mov ebx, dword [esp + 0x14]
mov edx, dword [esp + 0x1c]
mov dword [esp + 0x24], eax
cmp dword [edx + ecx], 1
jne 0x1014d61e
mov eax, dword [ecx]
mov dword [esi + edi], eax
cmp dword [ebx + 0x1c], 0
je 0x1014d611
mov eax, dword [ecx]
jmp 0x1014d614
or eax, 0xffffffff
mov dword [esi], eax
add esi, dword [esp + 0x3c]
mov eax, dword [esp + 0x24]
add ecx, 4
sub eax, 1
mov dword [esp + 0x24], eax
jne 0x1014d5fc
mov edx, dword [esp + 0x20]
push edx
push dword [esp + 0x64]
push dword [esp + 0x70]
push dword [esp + 0x70]
push ebx
mov ebx, dword [esp + 0x54]
mov ecx, ebx
call fcn.10158833
mov edi, dword [esp + 0x44]
mov esi, eax
test esi, esi
js 0x1014db48
mov eax, dword [esp + 0x20]
mov ecx, ebx
push 0x17
push dword [esp + 0x68]
and eax, 0xfffff
push dword [esp + 0x70]
or eax, 0x20200000
push dword [esp + 0x78]
push eax
push dword [esp + 0x28]
call fcn.10158e34
mov esi, eax
test esi, esi
js 0x1014db48
mov esi, dword [esp + 0x10]
mov edx, edi
mov ebx, dword [esp + 0x6c]
mov ecx, esi
mov eax, dword [esp + 0x1c]
cmp dword [ecx + eax], 1
jne 0x1014d6a8
mov eax, dword [ebx]
add ebx, 4
mov dword [ecx], eax
mov eax, dword [esp + 0x1c]
add ecx, 4
sub edx, 1
jne 0x1014d697
mov ebx, dword [esp + 0x40]
mov eax, dword [esp + 0x2c]
test eax, eax
je 0x1014dab7
imul eax, eax, 0xb
mov ecx, ebx
push eax
call fcn.10158ae2
mov ecx, eax
test ecx, ecx
jne 0x1014d6ef
push 0x10027fec
push 0
push dword [esp + 0x1c]
push ebx
call fcn.1015c202
add esp, 0x10
mov esi, 0x8007000e
jmp 0x1014db48
mov edx, dword [esp + 0x2c]
xor eax, eax
shl edx, 2
mov dword [esp + eax*4 + 0x60], ecx
inc eax
add ecx, edx
cmp eax, 0xb
jb 0x1014d6f8
sub dword [esp + 0x30], esi
mov ecx, esi
mov eax, dword [esp + 0x60]
mov esi, edi
mov edx, dword [esp + 0x88]
sub eax, edx
mov edi, dword [esp + 0x14]
mov ebx, eax
mov dword [esp + 0x20], eax
mov eax, dword [esp + 0x30]
cmp dword [ecx + eax], 2
jne 0x1014d749
mov eax, dword [ecx]
mov dword [edx + ebx], eax
cmp dword [edi + 0x1c], 0
je 0x1014d73c
mov eax, dword [ecx]
jmp 0x1014d73f
or eax, 0xffffffff
mov dword [edx], eax
add edx, dword [esp + 0x3c]
mov eax, dword [esp + 0x30]
add ecx, 4
sub esi, 1
jne 0x1014d727
mov edi, dword [esp + 0x44]
mov ebx, dword [esp + 0x40]
mov edx, dword [esp + 0x2c]
mov eax, dword [esp + 0x38]
push edx
push dword [esp + eax*4 + 0x64]
call fcn.10158c21
mov esi, eax
test esi, esi
js 0x1014db48
mov eax, dword [esp + 0x38]
inc eax
mov dword [esp + 0x38], eax
cmp eax, 0xa
jb 0x1014d761
push 0
push 0
push dword [esp + 0x68]
and edx, 0xfffff
mov ecx, ebx
push dword [esp + 0x70]
mov dword [esp + 0x3c], edx
or edx, 0x10200000
push edx
push dword [esp + 0x28]
call fcn.10158e34
mov esi, eax
test esi, esi
js 0x1014db48
mov edx, dword [esp + 0x2c]
mov ecx, ebx
push 0x14
push 0
push dword [esp + 0x6c]
or edx, 0x10400000
push dword [esp + 0x74]
push edx
push dword [esp + 0x28]
call fcn.10158e34
mov esi, eax
test esi, esi
js 0x1014db48
mov eax, dword [esp + 0x2c]
mov ecx, ebx
push 0x18
push 0
push dword [esp + 0x70]
or eax, 0x10100000
push dword [esp + 0x78]
mov dword [esp + 0x34], eax
push eax
push dword [esp + 0x28]
call fcn.10158e34
mov esi, eax
test esi, esi
js 0x1014db48
mov eax, dword [esp + 0x2c]
mov ecx, ebx
push 2
push dword [esp + 0x68]
or eax, 0x20400000
push dword [esp + 0x74]
mov dword [esp + 0x28], eax
push dword [esp + 0x7c]
push eax
push dword [esp + 0x28]
call fcn.10158e34
mov esi, eax
test esi, esi
js 0x1014db48
push 0
push 0
push dword [esp + 0x68]
mov ecx, ebx
push dword [esp + 0x80]
push dword [esp + 0x34]
push dword [esp + 0x28]
call fcn.10158e34
mov esi, eax
test esi, esi
js 0x1014db48
mov eax, dword [esp + 0x2c]
mov ecx, ebx
push 0x17
push dword [esp + 0x78]
or eax, 0x20200000
push dword [esp + 0x68]
mov dword [esp + 0x5c], eax
push dword [esp + 0x84]
push eax
push dword [esp + 0x28]
call fcn.10158e34
mov esi, eax
test esi, esi
js 0x1014db48
push 0
push 0
push dword [esp + 0x70]
mov ecx, ebx
push dword [esp + 0x88]
push dword [esp + 0x34]
push dword [esp + 0x28]
call fcn.10158e34
mov esi, eax
test esi, esi
js 0x1014db48
push 0x17
push dword [esp + 0x6c]
mov ecx, ebx
push dword [esp + 0x84]
push dword [esp + 0x8c]
push dword [esp + 0x60]
push dword [esp + 0x28]
call fcn.10158e34
mov esi, eax
test esi, esi
js 0x1014db48
mov eax, dword [esp + 0x2c]
mov ecx, ebx
push 0x17
push dword [esp + 0x84]
or eax, 0x20500000
push dword [esp + 0x80]
push dword [esp + 0x90]
push eax
push dword [esp + 0x28]
call fcn.10158e34
mov esi, eax
test esi, esi
js 0x1014db48
push 2
push dword [esp + 0x88]
mov ecx, ebx
push dword [esp + 0x78]
push dword [esp + 0x94]
push dword [esp + 0x2c]
push dword [esp + 0x28]
call fcn.10158e34
mov esi, eax
test esi, esi
js 0x1014db48
mov eax, dword [esp + 0x10]
mov ecx, edi
mov edi, dword [esp + 0x88]
mov esi, dword [esp + 0x20]
mov edx, dword [esp + 0x30]
mov dword [esp + 0x1c], eax
mov dword [esp + 0x2c], ecx
cmp dword [edx + eax], 2
jne 0x1014da9b
mov eax, dword [ebx + 8]
mov ecx, dword [eax + 0x14]
mov eax, dword [esi + edi]
mov edx, dword [ecx + eax*4]
mov eax, dword [edi]
mov dword [esp + 0x20], edx
mov eax, dword [ecx + eax*4]
lea ecx, [edx + 0x20]
mov dword [esp + 0x38], eax
mov eax, dword [edx]
mov dword [esp + 0x24], ecx
test al, al
jns 0x1014d9b0
fld qword [ecx]
or eax, 0x100
fstp qword [edx + 0x28]
mov dword [edx], eax
jmp 0x1014d9b4
mov dword [esp + 0x24], ecx
test eax, 0x100
je 0x1014da85
fld qword [ecx]
push ecx
push ecx
fstp qword [esp]
call sub.api_ms_win_crt_math_l1_1_0.dll__finite
pop ecx
pop ecx
mov ecx, dword [esp + 0x24]
fld qword [ecx]
test eax, eax
je 0x1014da06
fld qword [ebx + 0xb0]
fld qword [esp + 0x48]
fcomp st(2)
fnstsw ax
push ecx
push ecx
test ah, 0x41
jp 0x1014d9f8
faddp st(1)
fstp qword [esp]
call sub.api_ms_win_crt_private_l1_1_0.dll__o_floor
jmp 0x1014da04
fsubrp st(1)
fstp qword [esp]
call sub.api_ms_win_crt_private_l1_1_0.dll__o_floor
fchs
pop ecx
pop ecx
mov eax, dword [esp + 0x38]
push ecx
push ecx
fstp qword [eax + 0x20]
mov eax, dword [esp + 0x28]
fld qword [eax + 0x28]
fstp qword [esp]
call sub.api_ms_win_crt_math_l1_1_0.dll__finite
pop ecx
pop ecx
mov ecx, dword [esp + 0x20]
fld qword [ecx + 0x28]
test eax, eax
je 0x1014da5a
fld qword [ebx + 0xb0]
fld qword [esp + 0x48]
fcomp st(2)
fnstsw ax
push ecx
push ecx
test ah, 0x41
jp 0x1014da4c
faddp st(1)
fstp qword [esp]
call sub.api_ms_win_crt_private_l1_1_0.dll__o_floor
jmp 0x1014da58
fsubrp st(1)
fstp qword [esp]
call sub.api_ms_win_crt_private_l1_1_0.dll__o_floor
fchs
pop ecx
pop ecx
mov edx, dword [esp + 0x38]
mov ecx, dword [edx]
fst qword [edx + 0x28]
fld qword [edx + 0x20]
or ecx, 0x100
fucompp
fnstsw ax
test ah, 0x44
jp 0x1014da7d
or ecx, 0x80
jmp 0x1014da83
and ecx, 0xffffff7f
mov dword [edx], ecx
mov ecx, dword [esp + 0x1c]
mov eax, dword [edi]
add edi, dword [esp + 0x3c]
mov edx, dword [esp + 0x30]
mov dword [ecx], eax
mov eax, ecx
mov ecx, dword [esp + 0x2c]
add eax, 4
sub ecx, 1
mov dword [esp + 0x1c], eax
mov dword [esp + 0x2c], ecx
jne 0x1014d972
mov edi, dword [esp + 0x44]
mov esi, dword [esp + 0x10]
mov edx, dword [esp + 0x34]
sub esi, edx
mov eax, dword [ebx + 8]
mov ecx, dword [esi + edx]
mov eax, dword [eax + 0x14]
mov eax, dword [eax + ecx*4]
mov ecx, dword [edx]
and ecx, 0xf1ffffff
mov dword [esp + 0x24], eax
or ecx, dword [eax]
mov dword [eax], ecx
mov eax, ecx
mov edx, dword [edx]
and edx, 0xe000000
and eax, 0xe000000
jne 0x1014daec
mov eax, edx
mov ebx, dword [esp + 0x24]
cmp dword [ebx + 0x5c], 0
jne 0x1014dafc
cmp eax, edx
jb 0x1014db02
jmp 0x1014db00
cmp eax, edx
ja 0x1014db02
mov eax, edx
mov edx, dword [esp + 0x34]
and ecx, 0xf1ffffff
add edx, dword [esp + 0x3c]
or ecx, eax
mov eax, dword [esp + 0x24]
mov ebx, dword [esp + 0x40]
mov dword [esp + 0x34], edx
mov dword [eax], ecx
sub edi, 1
jne 0x1014dabd
jmp 0x1014c628
push 0x1002f15c
jmp 0x1014db36
push 0x1002f134
push 0
push 0
push ebx
call fcn.1015c202
add esp, 0x10
mov esi, 0x80004005
push dword [esp + 0x28]
mov ecx, ebx
call fcn.10158be1
push dword [esp + 0x18]
mov ecx, ebx
call fcn.10158be1
mov eax, esi
jmp 0x1014db67
mov eax, 0x80004005
mov ecx, dword [esp + 0x94]
pop edi
pop esi
pop ebx
xor ecx, esp
call fcn.101b9e50
mov esp, ebp
pop ebp
ret 0xc