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

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff0
sub esp, 0x4e0
mov esi, esp
mov edi, ecx
mov ecx, dword [ebp + 8]
mov eax, dword [0x10243228]
xor eax, ebp
mov dword [esi + 0x4d8], eax
pcmpeqd xmm0, xmm0
movdqu xmmword [ecx + 0x20], xmm0
movdqu xmmword [ecx + 0x10], xmm0
movdqu xmmword [ecx], xmm0
call fcn.10143864
mov dword [esi + 0x18], edi
mov eax, dword [edi + 4]
mov eax, dword [eax]
shr eax, 3
and eax, 0x7f
push eax
call fcn.100d632e
add esp, 4
mov dword [esi + 0x20], eax
lea edi, [esi + 0xf0]
pcmpeqd xmm0, xmm0
movdqa xmmword [edi], xmm0
mov ecx, edi
call fcn.100446fc
mov dword [edi], 0x10211324
mov dword [edi + 0xc], 1
lea ebx, [esi + 0x490]
pcmpeqd xmm0, xmm0
movdqa xmmword [ebx + 0x30], xmm0
movdqa xmmword [ebx + 0x20], xmm0
movdqa xmmword [ebx + 0x10], xmm0
movdqa xmmword [ebx], xmm0
lea edi, [esi + 0x4d0]
mov ecx, ebx
call fcn.100446fc
mov dword [ebx], 0x10211324
mov dword [ebx + 0xc], 1
add ebx, 0x10
cmp ebx, edi
jne 0x10127017
pcmpeqd xmm0, xmm0
movdqa xmmword [esi + 0x480], xmm0
movdqa xmmword [esi + 0x470], xmm0
movdqa xmmword [esi + 0x460], xmm0
xor edi, edi
lea ebx, [esi + edi]
add ebx, 0x460
mov ecx, ebx
call fcn.100446fc
mov dword [ebx], 0x10211450
add edi, 0xc
cmp edi, 0x30
jne 0x10127050
movzx eax, byte [ebp + 0x24]
lea edx, [esi + 0x460]
lea edi, [esi + 0x490]
mov ebx, dword [esi + 0x18]
mov ecx, ebx
push eax
push edx
push dword [ebp + 0x20]
lea eax, [esi + 0xf0]
push eax
push edi
push dword [ebp + 0xc]
call fcn.10128c5a
xor edi, edi
dec edi
mov dword [esi + 0xe4], edi
mov dword [esi + 0xe8], edi
mov dword [esi + 0xec], edi
cmp dword [ebp + 0x28], 4
jne 0x101270ea
mov dword [esi + 0x10], esp
push eax
mov edi, esp
mov ecx, dword [ebp + 0x10]
call fcn.100447aa
mov ebx, eax
call fcn.1003fa60
push eax
push ebx
mov ebx, dword [esi + 0x18]
call fcn.1003d17a
add esp, 8
mov dword [edi], eax
xor edi, edi
dec edi
lea ecx, [esi + 0xe4]
call fcn.1003e634
mov esp, dword [esi + 0x10]
jmp 0x1012710e
mov eax, dword [ebx + 4]
mov eax, dword [eax]
shr eax, 0xd
and eax, 7
mov ecx, ebx
lea edx, [esi + 0xf0]
push edx
push eax
push dword [ebp + 0x10]
lea eax, [esi + 0xe4]
push eax
call fcn.101290b6
mov dword [esi + 0xd8], edi
mov dword [esi + 0xdc], edi
mov dword [esi + 0xe0], edi
cmp dword [ebp + 0x28], 4
jne 0x1012715d
mov dword [esi + 0x10], esp
push eax
mov edi, esp
mov ecx, dword [ebp + 0x14]
call fcn.100447aa
mov ebx, eax
call fcn.1003fa60
push eax
push ebx
mov ebx, dword [esi + 0x18]
call fcn.1003d17a
add esp, 8
mov dword [edi], eax
xor edi, edi
dec edi
lea ecx, [esi + 0xd8]
call fcn.1003e634
mov esp, dword [esi + 0x10]
jmp 0x10127180
mov eax, dword [ebx + 4]
movzx eax, word [eax + 2]
and eax, 7
mov ecx, ebx
lea edx, [esi + 0xf0]
push edx
push eax
push dword [ebp + 0x14]
lea eax, [esi + 0xd8]
push eax
call fcn.101290b6
mov dword [esi + 0xcc], edi
mov dword [esi + 0xd0], edi
mov dword [esi + 0xd4], edi
cmp dword [ebp + 0x28], 4
jne 0x101271cc
mov dword [esi + 0x10], esp
push eax
mov edi, esp
mov ecx, dword [ebp + 0x18]
call fcn.100447aa
mov ebx, eax
call fcn.1003fa60
push eax
push ebx
call fcn.1003d17a
add esp, 8
mov dword [edi], eax
lea ecx, [esi + 0xcc]
call fcn.1003e634
mov esp, dword [esi + 0x10]
jmp 0x10128823
mov eax, dword [ebx + 4]
mov eax, dword [eax]
shr eax, 0x13
and eax, 7
lea edi, [esi + 0xcc]
mov ecx, ebx
lea edx, [esi + 0xf0]
push edx
push eax
push dword [ebp + 0x18]
push edi
call fcn.101290b6
mov eax, dword [ebx + 4]
test byte [eax + 1], 0x1c
je 0x10128823
lea eax, [esi + 0x2e0]
push 0x180
push 0xff
push eax
call fcn.101db130
add esp, 0xc
xor edi, edi
lea ecx, [esi + edi]
add ecx, 0x2e0
call fcn.10143864
add edi, 0x30
cmp edi, 0x180
jne 0x10127218
pcmpeqd xmm0, xmm0
movdqa xmmword [esi + 0x2d0], xmm0
movdqa xmmword [esi + 0x2c0], xmm0
movdqa xmmword [esi + 0x2b0], xmm0
movdqa xmmword [esi + 0x2a0], xmm0
movdqa xmmword [esi + 0x290], xmm0
movdqa xmmword [esi + 0x280], xmm0
xor edi, edi
lea ebx, [esi + edi]
add ebx, 0x280
mov ecx, ebx
call fcn.100446fc
mov dword [ebx], fcn.1003e6f0
add edi, 0xc
cmp edi, 0x60
jne 0x10127267
pcmpeqd xmm0, xmm0
movdqa xmmword [esi + 0x270], xmm0
movdqa xmmword [esi + 0x260], xmm0
movdqa xmmword [esi + 0x250], xmm0
movdqa xmmword [esi + 0x240], xmm0
movdqa xmmword [esi + 0x230], xmm0
movdqa xmmword [esi + 0x220], xmm0
xor edi, edi
lea ebx, [esi + edi]
add ebx, 0x220
mov ecx, ebx
call fcn.100446fc
mov dword [ebx], fcn.1003e6f0
add edi, 0xc
cmp edi, 0x60
jne 0x101272bb
pcmpeqd xmm0, xmm0
movdqa xmmword [esi + 0x210], xmm0
movdqa xmmword [esi + 0x200], xmm0
movdqa xmmword [esi + 0x1f0], xmm0
movdqa xmmword [esi + 0x1e0], xmm0
movdqa xmmword [esi + 0x1d0], xmm0
movdqa xmmword [esi + 0x1c0], xmm0
xor edi, edi
lea ebx, [esi + edi]
add ebx, 0x1c0
mov ecx, ebx
call fcn.100446fc
mov dword [ebx], fcn.1003e6f0
add edi, 0xc
cmp edi, 0x60
jne 0x1012730f
xor ecx, ecx
mov al, 1
lea ebx, [esi + 0x160]
mov dword [esi + 0x1c], eax
mov dword [esi + 0x24], ecx
lea eax, [ecx + ecx]
dec eax
mov dword [esi + 0x3c], eax
mov al, 1
mov dword [esi + 0x34], 0
mov dword [esi + 0x38], eax
mov eax, dword [esi + 0x34]
add eax, eax
dec eax
mov dword [esi + 0x44], eax
xor edi, edi
mov al, 1
mov dword [esi + 0x10], edi
mov dword [esi + 0x28], eax
mov edi, dword [esi + 0x18]
mov ecx, dword [edi + 4]
xor eax, eax
test dword [ecx], 0xe000
sete al
mov ecx, edi
mov edx, dword [ebp + 0x20]
push edx
push dword [esi + 0x3c]
push eax
push 0x50
lea eax, [esi + 0xf0]
push eax
lea eax, [esi + 0xe4]
push eax
push ebx
call fcn.10123178
mov eax, dword [esi + 0x34]
lea eax, [eax*8]
lea edx, [eax + eax*2]
mov dword [esi + 0xc], edx
mov eax, dword [esi + 0x24]
shl eax, 4
lea eax, [eax + eax*2]
mov dword [esi + 8], eax
lea ecx, [esi + eax]
add ecx, 0x280
add ecx, edx
mov eax, dword [esi + 0x10]
lea eax, [eax*4]
lea eax, [eax + eax*2]
mov dword [esi + 0x14], eax
add ecx, eax
push ebx
lea eax, [esi + 0x100]
push eax
call fcn.100448e4
mov ecx, ebx
call fcn.10048de8
mov ecx, dword [edi + 4]
xor eax, eax
test dword [ecx], 0x70000
sete al
mov ecx, edi
push dword [ebp + 0x20]
push dword [esi + 0x44]
push eax
push 0x58
lea eax, [esi + 0xf0]
push eax
lea eax, [esi + 0xd8]
push eax
push ebx
call fcn.10123178
mov eax, dword [esi + 8]
lea ecx, [esi + eax]
add ecx, 0x220
add ecx, dword [esi + 0xc]
add ecx, dword [esi + 0x14]
push ebx
lea eax, [esi + 0x100]
push eax
call fcn.100448e4
mov ecx, ebx
call fcn.10048de8
mov eax, dword [esi + 0x10]
lea edx, [eax + eax]
dec edx
mov ecx, dword [edi + 4]
xor eax, eax
test dword [ecx], 0x380000
sete al
mov ecx, edi
push dword [ebp + 0x20]
push edx
push eax
push 0x60
lea eax, [esi + 0xf0]
push eax
lea eax, [esi + 0xcc]
push eax
push ebx
call fcn.10123178
mov eax, dword [esi + 8]
lea ecx, [esi + eax]
add ecx, 0x1c0
add ecx, dword [esi + 0xc]
add ecx, dword [esi + 0x14]
lea eax, [esi + 0x100]
push ebx
push eax
call fcn.100448e4
mov ecx, ebx
call fcn.10048de8
xor edi, edi
inc edi
test byte [esi + 0x28], 1
mov eax, 0
jne 0x1012735d
xor ecx, ecx
inc ecx
mov eax, ecx
mov dword [esi + 0x34], ecx
test byte [esi + 0x38], 1
mov eax, 0
jne 0x1012734d
test byte [esi + 0x1c], 1
mov eax, 0
jne 0x10127337
mov dword [esi + 0x10], esp
lea ecx, [esi + 0xc0]
xor eax, eax
dec eax
mov dword [ecx], eax
mov dword [ecx + 4], eax
mov dword [ecx + 8], eax
push eax
mov dword [esi + 8], esp
mov dword [esi + 0xc], esp
sub esp, 0xc
mov dword [esi + 0x14], esp
mov dword [esi + 0x28], esp
sub esp, 8
mov ebx, esp
mov dword [esi + 0x34], esp
sub esp, 0xc
mov edi, esp
lea ecx, [esi + 0xf0]
call fcn.100447aa
mov dword [edi + 4], eax
mov dword [edi], ebx
mov dword [edi + 8], 0x68
call fcn.10047b29
add esp, 0xc
mov esp, dword [esi + 0x34]
xor eax, eax
inc eax
mov dword [ebx + 4], eax
lea ebx, [esi + 0x160]
mov ecx, ebx
call fcn.100c4716
mov esp, dword [esi + 0x28]
mov edi, dword [ebx + 0xc]
mov ecx, ebx
call fcn.100447aa
mov ebx, eax
call fcn.1003e6f0
xor ecx, ecx
push ecx
xor ecx, ecx
push ecx
push edi
xor ecx, ecx
push ecx
push eax
push ebx
call fcn.1003cd7a
add esp, 0x18
mov edi, dword [esi + 0x14]
mov dword [edi + 8], eax
lea ecx, [esi + 0x280]
call fcn.100447aa
mov ebx, eax
call fcn.1003e6f0
push eax
push ebx
call fcn.1003d17a
add esp, 8
mov dword [edi + 4], eax
mov eax, dword [esi + 8]
mov dword [edi], eax
call fcn.1004556c
add esp, 0xc
mov esp, dword [esi + 0xc]
lea ecx, [esi + 0xc0]
call fcn.10045466
mov esp, dword [esi + 0x10]
lea ecx, [esi + 0x160]
call fcn.10048de8
mov dword [esi + 0x10], esp
lea eax, [esi + 0xb4]
xor ecx, ecx
dec ecx
mov dword [eax], ecx
mov dword [eax + 4], ecx
mov dword [eax + 8], ecx
push eax
mov dword [esi + 8], esp
mov dword [esi + 0xc], esp
sub esp, 0xc
mov dword [esi + 0x14], esp
mov dword [esi + 0x28], esp
sub esp, 8
mov ebx, esp
mov dword [esi + 0x34], esp
sub esp, 0xc
mov edi, esp
lea ecx, [esi + 0xf0]
call fcn.100447aa
mov dword [edi + 4], eax
mov dword [edi], ebx
mov dword [edi + 8], 0x70
call fcn.10047b29
add esp, 0xc
mov esp, dword [esi + 0x34]
xor eax, eax
inc eax
mov dword [ebx + 4], eax
lea ebx, [esi + 0x160]
mov ecx, ebx
call fcn.100c4716
mov esp, dword [esi + 0x28]
mov edi, dword [ebx + 0xc]
mov ecx, ebx
call fcn.100447aa
mov ebx, eax
call fcn.1003e6f0
xor ecx, ecx
push ecx
xor ecx, ecx
push ecx
push edi
xor ecx, ecx
push ecx
push eax
push ebx
call fcn.1003cd7a
add esp, 0x18
mov edi, dword [esi + 0x14]
mov dword [edi + 8], eax
lea ecx, [esi + 0x220]
call fcn.100447aa
mov ebx, eax
call fcn.1003e6f0
push eax
push ebx
call fcn.1003d17a
add esp, 8
mov dword [edi + 4], eax
mov eax, dword [esi + 8]
mov dword [edi], eax
call fcn.1004556c
add esp, 0xc
mov esp, dword [esi + 0xc]
lea ecx, [esi + 0xb4]
call fcn.10045466
mov esp, dword [esi + 0x10]
lea ecx, [esi + 0x160]
call fcn.10048de8
mov dword [esi + 0x10], esp
lea ecx, [esi + 0xa8]
xor eax, eax
dec eax
mov dword [ecx], eax
mov dword [ecx + 4], eax
mov dword [ecx + 8], eax
push eax
mov dword [esi + 8], esp
mov dword [esi + 0xc], esp
sub esp, 0xc
mov dword [esi + 0x14], esp
mov dword [esi + 0x28], esp
sub esp, 8
mov ebx, esp
mov dword [esi + 0x34], esp
sub esp, 0xc
mov edi, esp
lea ecx, [esi + 0xf0]
call fcn.100447aa
mov dword [edi + 4], eax
mov dword [edi], ebx
mov dword [edi + 8], pe_nt_image_headers32
call fcn.10047b29
add esp, 0xc
mov esp, dword [esi + 0x34]
xor eax, eax
inc eax
mov dword [ebx + 4], eax
lea ebx, [esi + 0x160]
mov ecx, ebx
call fcn.100c4716
mov esp, dword [esi + 0x28]
mov edi, dword [ebx + 0xc]
mov ecx, ebx
call fcn.100447aa
mov ebx, eax
call fcn.1003e6f0
xor ecx, ecx
push ecx
xor ecx, ecx
push ecx
push edi
xor ecx, ecx
push ecx
push eax
push ebx
call fcn.1003cd7a
add esp, 0x18
mov edi, dword [esi + 0x14]
mov dword [edi + 8], eax
lea ecx, [esi + 0x1c0]
call fcn.100447aa
mov ebx, eax
call fcn.1003e6f0
push eax
push ebx
call fcn.1003d17a
add esp, 8
mov dword [edi + 4], eax
mov eax, dword [esi + 8]
mov dword [edi], eax
call fcn.1004556c
add esp, 0xc
mov esp, dword [esi + 0xc]
lea ecx, [esi + 0xa8]
call fcn.10045466
mov esp, dword [esi + 0x10]
lea ecx, [esi + 0x160]
call fcn.10048de8
mov dword [esi + 0x10], esp
lea ebx, [esi + 0x9c]
xor eax, eax
dec eax
mov dword [ebx], eax
mov dword [ebx + 4], eax
mov dword [ebx + 8], eax
push eax
mov dword [esi + 8], esp
mov dword [esi + 0xc], esp
sub esp, 8
mov edi, esp
lea ecx, [esi + 0xc0]
call fcn.100447aa
mov dword [edi + 4], eax
mov eax, dword [esi + 8]
mov dword [edi], eax
call fcn.1004490c
add esp, 8
mov esp, dword [esi + 0xc]
mov ecx, ebx
call fcn.10045466
mov esp, dword [esi + 0x10]
lea ebx, [esi + 0x90]
xor eax, eax
dec eax
mov dword [ebx], eax
mov dword [ebx + 4], eax
mov dword [ebx + 8], eax
push eax
mov dword [esi + 8], esp
mov dword [esi + 0xc], esp
sub esp, 8
mov edi, esp
lea ecx, [esi + 0xb4]
call fcn.100447aa
mov dword [edi + 4], eax
mov eax, dword [esi + 8]
mov dword [edi], eax
call fcn.1004490c
add esp, 8
mov esp, dword [esi + 0xc]
mov ecx, ebx
call fcn.10045466
mov esp, dword [esi + 0x10]
lea ebx, [esi + 0x84]
xor eax, eax
dec eax
mov dword [ebx], eax
mov dword [ebx + 4], eax
mov dword [ebx + 8], eax
push eax
mov dword [esi + 8], esp
mov dword [esi + 0xc], esp
sub esp, 8
mov edi, esp
lea ecx, [esi + 0xa8]
call fcn.100447aa
mov dword [edi + 4], eax
mov eax, dword [esi + 8]
mov dword [edi], eax
call fcn.1004490c
add esp, 8
mov esp, dword [esi + 0xc]
mov ecx, ebx
xor ebx, ebx
call fcn.10045466
mov esp, dword [esi + 0x10]
pcmpeqd xmm0, xmm0
lea eax, [esi + 0x160]
movdqa xmmword [eax + 0x50], xmm0
movdqa xmmword [eax + 0x40], xmm0
movdqa xmmword [eax + 0x30], xmm0
movdqa xmmword [eax + 0x20], xmm0
movdqa xmmword [eax + 0x10], xmm0
movdqa xmmword [eax], xmm0
lea edi, [esi + ebx]
add edi, 0x160
mov ecx, edi
call fcn.100446fc
mov dword [edi], fcn.1003e6f0
add ebx, 0xc
cmp ebx, 0x60
jne 0x10127853
pcmpeqd xmm0, xmm0
movdqa xmmword [esi + 0x150], xmm0
movdqa xmmword [esi + 0x140], xmm0
movdqa xmmword [esi + 0x130], xmm0
movdqa xmmword [esi + 0x120], xmm0
movdqa xmmword [esi + 0x110], xmm0
movdqa xmmword [esi + 0x100], xmm0
xor ebx, ebx
lea edi, [esi + ebx]
add edi, 0x100
mov ecx, edi
call fcn.100446fc
mov dword [edi], fcn.1003e6f0
add ebx, 0xc
cmp ebx, 0x60
jne 0x101278a7
mov dword [esi + 0x10], esp
sub esp, 8
mov ebx, esp
mov dword [esi + 0xc], esp
lea eax, [ebx + 4]
mov dword [esi + 8], eax
sub esp, 0xc
mov edi, esp
lea ecx, [esi + 0x90]
call fcn.100447aa
mov dword [edi + 8], eax
lea ecx, [esi + 0x9c]
call fcn.100447aa
mov dword [edi + 4], eax
mov eax, dword [esi + 8]
mov dword [edi], eax
call fcn.1003f662
add esp, 0xc
mov esp, dword [esi + 0xc]
lea ecx, [esi + 0x1b4]
lea eax, [esi + 0x54]
mov dword [ebx], eax
call fcn.100448c8
mov esp, dword [esi + 0x10]
push eax
push eax
mov ebx, esp
mov dword [esi + 0xc], esp
lea eax, [ebx + 4]
mov dword [esi + 8], eax
sub esp, 0xc
mov edi, esp
lea ecx, [esi + 0x90]
call fcn.100447aa
mov dword [edi + 8], eax
lea ecx, [esi + 0xc0]
call fcn.100447aa
mov dword [edi + 4], eax
mov eax, dword [esi + 8]
mov dword [edi], eax
call fcn.1003f662
add esp, 0xc
mov esp, dword [esi + 0xc]
lea ecx, [esi + 0x184]
lea eax, [esi + 0x54]
mov dword [ebx], eax
call fcn.100448c8
mov esp, dword [esi + 0x10]
push eax
push eax
mov ebx, esp
mov dword [esi + 0xc], esp
lea eax, [ebx + 4]
mov dword [esi + 8], eax
sub esp, 0xc
mov edi, esp
lea ecx, [esi + 0xb4]
call fcn.100447aa
mov dword [edi + 8], eax
lea ecx, [esi + 0x9c]
call fcn.100447aa
mov dword [edi + 4], eax
mov eax, dword [esi + 8]
mov dword [edi], eax
call fcn.1003f662
add esp, 0xc
mov esp, dword [esi + 0xc]
lea ecx, [esi + 0x19c]
lea eax, [esi + 0x54]
mov dword [ebx], eax
call fcn.100448c8
mov esp, dword [esi + 0x10]
mov dword [esi + 0xc], esp
push eax
push eax
mov edi, esp
mov dword [esi + 0x10], esp
lea eax, [edi + 4]
mov dword [esi + 8], eax
sub esp, 0xc
mov ebx, esp
lea ecx, [esi + 0xb4]
call fcn.100447aa
mov dword [ebx + 8], eax
lea ecx, [esi + 0xc0]
call fcn.100447aa
mov dword [ebx + 4], eax
mov eax, dword [esi + 8]
mov dword [ebx], eax
call fcn.1003f662
add esp, 0xc
mov esp, dword [esi + 0x10]
lea ecx, [esi + 0x160]
mov eax, 0xc
or ecx, eax
mov dword [esi + 0x10], ecx
lea eax, [esi + 0x54]
mov dword [edi], eax
call fcn.100448c8
mov esp, dword [esi + 0xc]
push eax
push eax
mov ebx, esp
mov dword [esi + 8], esp
lea eax, [ebx + 4]
mov dword [esi + 0x14], eax
sub esp, 0xc
mov edi, esp
lea ecx, [esi + 0x90]
call fcn.100447aa
mov dword [edi + 8], eax
lea ecx, [esi + 0x9c]
call fcn.100447aa
mov dword [edi + 4], eax
mov eax, dword [esi + 0x14]
mov dword [edi], eax
call fcn.1003f662
add esp, 0xc
mov esp, dword [esi + 8]
lea eax, [esi + 0x54]
mov dword [ebx], eax
lea ecx, [esi + 0x1a8]
call fcn.100448c8
mov esp, dword [esi + 0xc]
push eax
push eax
mov ebx, esp
mov dword [esi + 8], esp
lea eax, [ebx + 4]
mov dword [esi + 0x14], eax
sub esp, 0xc
mov edi, esp
lea ecx, [esi + 0x90]
call fcn.100447aa
mov dword [edi + 8], eax
lea ecx, [esi + 0xc0]
call fcn.100447aa
mov dword [edi + 4], eax
mov eax, dword [esi + 0x14]
mov dword [edi], eax
call fcn.1003f662
add esp, 0xc
mov esp, dword [esi + 8]
lea eax, [esi + 0x54]
mov dword [ebx], eax
lea ecx, [esi + 0x178]
call fcn.100448c8
mov esp, dword [esi + 0xc]
push eax
push eax
mov ebx, esp
mov dword [esi + 8], esp
lea eax, [ebx + 4]
mov dword [esi + 0x14], eax
sub esp, 0xc
mov edi, esp
lea ecx, [esi + 0xb4]
call fcn.100447aa
mov dword [edi + 8], eax
lea ecx, [esi + 0x9c]
call fcn.100447aa
mov dword [edi + 4], eax
mov eax, dword [esi + 0x14]
mov dword [edi], eax
call fcn.1003f662
add esp, 0xc
mov esp, dword [esi + 8]
lea eax, [esi + 0x54]
mov dword [ebx], eax
lea ecx, [esi + 0x190]
call fcn.100448c8
mov esp, dword [esi + 0xc]
push eax
push eax
mov ebx, esp
mov dword [esi + 8], esp
lea eax, [ebx + 4]
mov dword [esi + 0x14], eax
sub esp, 0xc
mov edi, esp
lea ecx, [esi + 0xb4]
call fcn.100447aa
mov dword [edi + 8], eax
lea ecx, [esi + 0xc0]
call fcn.100447aa
mov dword [edi + 4], eax
mov eax, dword [esi + 0x14]
mov dword [edi], eax
call fcn.1003f662
add esp, 0xc
mov esp, dword [esi + 8]
lea eax, [esi + 0x54]
mov dword [ebx], eax
lea ecx, [esi + 0x160]
call fcn.100448c8
mov esp, dword [esi + 0xc]
push eax
push eax
mov ebx, esp
mov dword [esi + 8], esp
lea eax, [ebx + 4]
mov dword [esi + 0x14], eax
sub esp, 0xc
mov edi, esp
lea ecx, [esi + 0x84]
call fcn.100447aa
mov dword [edi + 8], eax
lea ecx, [esi + 0x1b4]
call fcn.100447aa
mov dword [edi + 4], eax
mov eax, dword [esi + 0x14]
mov dword [edi], eax
call fcn.1003f662
add esp, 0xc
mov esp, dword [esi + 8]
lea eax, [esi + 0x54]
mov dword [ebx], eax
lea ecx, [esi + 0x1b4]
call fcn.100448c8
mov esp, dword [esi + 0xc]
push eax
push eax
mov ebx, esp
mov dword [esi + 8], esp
lea eax, [ebx + 4]
mov dword [esi + 0x14], eax
sub esp, 0xc
mov edi, esp
lea ecx, [esi + 0x84]
call fcn.100447aa
mov dword [edi + 8], eax
lea ecx, [esi + 0x184]
call fcn.100447aa
mov dword [edi + 4], eax
mov eax, dword [esi + 0x14]
mov dword [edi], eax
call fcn.1003f662
add esp, 0xc
mov esp, dword [esi + 8]
lea eax, [esi + 0x54]
mov dword [ebx], eax
lea ecx, [esi + 0x184]
call fcn.100448c8
mov esp, dword [esi + 0xc]
push eax
push eax
mov ebx, esp
mov dword [esi + 8], esp
lea eax, [ebx + 4]
mov dword [esi + 0x14], eax
sub esp, 0xc
mov edi, esp
lea ecx, [esi + 0x84]
call fcn.100447aa
mov dword [edi + 8], eax
lea ecx, [esi + 0x19c]
call fcn.100447aa
mov dword [edi + 4], eax
mov eax, dword [esi + 0x14]
mov dword [edi], eax
call fcn.1003f662
add esp, 0xc
mov esp, dword [esi + 8]
lea eax, [esi + 0x54]
mov dword [ebx], eax
lea ecx, [esi + 0x19c]
call fcn.100448c8
mov esp, dword [esi + 0xc]
push eax
push eax
mov eax, esp
mov dword [esi + 8], eax
mov dword [esi + 0x14], esp
add eax, 4
mov dword [esi + 0x28], eax
sub esp, 0xc
mov edi, esp
lea ecx, [esi + 0x84]
call fcn.100447aa
mov dword [edi + 8], eax
mov ebx, dword [esi + 0x10]
mov ecx, ebx
call fcn.100447aa
mov dword [edi + 4], eax
mov eax, dword [esi + 0x28]
mov dword [edi], eax
call fcn.1003f662
add esp, 0xc
mov esp, dword [esi + 0x14]
lea eax, [esi + 0x54]
mov ecx, dword [esi + 8]
mov dword [ecx], eax
mov ecx, ebx
call fcn.100448c8
mov esp, dword [esi + 0xc]
push eax
push eax
mov ebx, esp
mov dword [esi + 8], esp
lea eax, [ebx + 4]
mov dword [esi + 0x14], eax
sub esp, 0xc
mov edi, esp
lea ecx, [esi + 0xa8]
call fcn.100447aa
mov dword [edi + 8], eax
lea eax, [esi + 0x1a8]
mov ecx, eax
call fcn.100447aa
mov dword [edi + 4], eax
mov eax, dword [esi + 0x14]
mov dword [edi], eax
call fcn.1003f662
add esp, 0xc
mov esp, dword [esi + 8]
lea eax, [esi + 0x54]
mov dword [ebx], eax
lea ecx, [esi + 0x1a8]
call fcn.100448c8
mov esp, dword [esi + 0xc]
push eax
push eax
mov ebx, esp
mov dword [esi + 8], esp
lea eax, [ebx + 4]
mov dword [esi + 0x14], eax
sub esp, 0xc
mov edi, esp
lea ecx, [esi + 0xa8]
call fcn.100447aa
mov dword [edi + 8], eax
lea eax, [esi + 0x178]
mov ecx, eax
call fcn.100447aa
mov dword [edi + 4], eax
mov eax, dword [esi + 0x14]
mov dword [edi], eax
call fcn.1003f662
add esp, 0xc
mov esp, dword [esi + 8]
lea eax, [esi + 0x54]
mov dword [ebx], eax
lea ecx, [esi + 0x178]
call fcn.100448c8
mov esp, dword [esi + 0xc]
push eax
push eax
mov ebx, esp
mov dword [esi + 8], esp
lea eax, [ebx + 4]
mov dword [esi + 0x14], eax
sub esp, 0xc
mov edi, esp
lea ecx, [esi + 0xa8]
call fcn.100447aa
mov dword [edi + 8], eax
lea eax, [esi + 0x190]
mov ecx, eax
call fcn.100447aa
mov dword [edi + 4], eax
mov eax, dword [esi + 0x14]
mov dword [edi], eax
call fcn.1003f662
add esp, 0xc
mov esp, dword [esi + 8]
lea eax, [esi + 0x54]
mov dword [ebx], eax
lea ecx, [esi + 0x190]
call fcn.100448c8
mov esp, dword [esi + 0xc]
push eax
push eax
mov ebx, esp
mov dword [esi + 8], esp
lea eax, [ebx + 4]
mov dword [esi + 0x14], eax
sub esp, 0xc
mov edi, esp
lea ecx, [esi + 0xa8]
call fcn.100447aa
mov dword [edi + 8], eax
lea ecx, [esi + 0x160]
call fcn.100447aa
mov dword [edi + 4], eax
mov eax, dword [esi + 0x14]
mov dword [edi], eax
call fcn.1003f662
add esp, 0xc
mov esp, dword [esi + 8]
lea eax, [esi + 0x54]
mov dword [ebx], eax
lea ecx, [esi + 0x160]
call fcn.100448c8
mov esp, dword [esi + 0xc]
mov eax, dword [esi + 0x18]
mov eax, dword [eax + 4]
mov eax, dword [eax]
shr eax, 3
and eax, 0x7f
push 0
push eax
call fcn.100d621c
add esp, 8
test al, al
je 0x10127e65
mov eax, dword [esi + 0x18]
mov eax, dword [eax + 4]
mov eax, dword [eax]
shr eax, 3
and eax, 0x7f
push 1
push eax
call fcn.100d621c
add esp, 8
test al, al
je 0x10127e65
mov eax, dword [esi + 0x18]
mov eax, dword [eax + 4]
mov eax, dword [eax]
shr eax, 3
and eax, 0x7f
push 2
push eax
call fcn.100d621c
add esp, 8
test al, al
je 0x10127e65
mov eax, dword [esi + 0x18]
mov eax, dword [eax + 4]
mov eax, dword [eax]
shr eax, 3
and eax, 0x7f
push 3
push eax
call fcn.100d621c
add esp, 8
test al, al
jne 0x101280af
mov dword [esi + 0xc], esp
push eax
push eax
mov ebx, esp
mov dword [esi + 8], esp
lea eax, [ebx + 4]
mov dword [esi + 0x14], eax
sub esp, 0xc
mov edi, esp
lea ecx, [esi + 0x160]
call fcn.100447aa
mov dword [edi + 4], eax
mov eax, dword [esi + 0x14]
mov dword [edi], eax
mov al, 1
mov byte [edi + 8], al
call fcn.1003da62
add esp, 0xc
mov esp, dword [esi + 8]
lea eax, [esi + 0x54]
mov dword [ebx], eax
lea ecx, [esi + 0x100]
call fcn.1004552e
mov esp, dword [esi + 0xc]
push eax
push eax
mov ebx, esp
mov dword [esi + 8], esp
lea eax, [ebx + 4]
mov dword [esi + 0x14], eax
sub esp, 0xc
mov edi, esp
mov ecx, dword [esi + 0x10]
call fcn.100447aa
mov dword [edi + 4], eax
mov eax, dword [esi + 0x14]
mov dword [edi], eax
mov al, 1
mov byte [edi + 8], al
call fcn.1003da62
add esp, 0xc
mov esp, dword [esi + 8]
mov ecx, 0xc
lea eax, [esi + 0x100]
or ecx, eax
lea eax, [esi + 0x54]
mov dword [ebx], eax
call fcn.1004552e
mov esp, dword [esi + 0xc]
mov dword [esi + 0x10], esp
push eax
push eax
mov ebx, esp
mov dword [esi + 0xc], esp
lea eax, [ebx + 4]
mov dword [esi + 8], eax
sub esp, 0xc
mov edi, esp
lea ecx, [esi + 0x178]
call fcn.100447aa
mov dword [edi + 4], eax
mov eax, dword [esi + 8]
mov dword [edi], eax
mov al, 1
mov byte [edi + 8], al
call fcn.1003da62
add esp, 0xc
mov esp, dword [esi + 0xc]
lea ecx, [esi + 0x118]
lea eax, [esi + 0x54]
mov dword [ebx], eax
call fcn.1004552e
mov esp, dword [esi + 0x10]
push eax
push eax
mov ebx, esp
mov dword [esi + 0xc], esp
lea eax, [ebx + 4]
mov dword [esi + 8], eax
sub esp, 0xc
mov edi, esp
lea ecx, [esi + 0x184]
call fcn.100447aa
mov dword [edi + 4], eax
mov eax, dword [esi + 8]
mov dword [edi], eax
mov al, 1
mov byte [edi + 8], al
call fcn.1003da62
add esp, 0xc
mov esp, dword [esi + 0xc]
lea ecx, [esi + 0x124]
lea eax, [esi + 0x54]
mov dword [ebx], eax
call fcn.1004552e
mov esp, dword [esi + 0x10]
push eax
push eax
mov ebx, esp
mov dword [esi + 0xc], esp
lea eax, [ebx + 4]
mov dword [esi + 8], eax
sub esp, 0xc
mov edi, esp
lea ecx, [esi + 0x190]
call fcn.100447aa
mov dword [edi + 4], eax
mov eax, dword [esi + 8]
mov dword [edi], eax
mov al, 1
mov byte [edi + 8], al
call fcn.1003da62
add esp, 0xc
mov esp, dword [esi + 0xc]
lea ecx, [esi + 0x130]
lea eax, [esi + 0x54]
mov dword [ebx], eax
call fcn.1004552e
mov esp, dword [esi + 0x10]
push eax
push eax
mov ebx, esp
mov dword [esi + 0xc], esp
lea eax, [ebx + 4]
mov dword [esi + 8], eax
sub esp, 0xc
mov edi, esp
lea ecx, [esi + 0x19c]
call fcn.100447aa
mov dword [edi + 4], eax
mov eax, dword [esi + 8]
mov dword [edi], eax
mov al, 1
mov byte [edi + 8], al
call fcn.1003da62
add esp, 0xc
mov esp, dword [esi + 0xc]
lea ecx, [esi + 0x13c]
lea eax, [esi + 0x54]
mov dword [ebx], eax
call fcn.1004552e
mov esp, dword [esi + 0x10]
push eax
push eax
mov ebx, esp
mov dword [esi + 0xc], esp
lea eax, [ebx + 4]
mov dword [esi + 8], eax
sub esp, 0xc
mov edi, esp
lea ecx, [esi + 0x1a8]
call fcn.100447aa
mov dword [edi + 4], eax
mov eax, dword [esi + 8]
mov dword [edi], eax
mov al, 1
mov byte [edi + 8], al
call fcn.1003da62
add esp, 0xc
mov esp, dword [esi + 0xc]
lea ecx, [esi + 0x148]
lea eax, [esi + 0x54]
mov dword [ebx], eax
call fcn.1004552e
mov esp, dword [esi + 0x10]
push eax
push eax
mov ebx, esp
mov dword [esi + 0xc], esp
lea eax, [ebx + 4]
mov dword [esi + 8], eax
sub esp, 0xc
mov edi, esp
lea ecx, [esi + 0x1b4]
call fcn.100447aa
mov dword [edi + 4], eax
mov eax, dword [esi + 8]
mov dword [edi], eax
mov al, 1
mov byte [edi + 8], al
call fcn.1003da62
add esp, 0xc
mov esp, dword [esi + 0xc]
lea ecx, [esi + 0x154]
lea eax, [esi + 0x54]
mov dword [ebx], eax
call fcn.1004552e
mov esp, dword [esi + 0x10]
xor ecx, ecx
mov al, 1
mov dword [esi + 0x48], eax
mov eax, ecx
xor eax, 1
mov dword [esi + 0x38], eax
mov al, 1
xor edx, edx
mov dword [esi + 0x14], ecx
mov dword [esi + 0x4c], eax
mov eax, edx
xor eax, 1
mov dword [esi + 0x3c], eax
mov eax, edx
or eax, ecx
mov dword [esi + 0x50], eax
xor ecx, ecx
mov al, 1
mov dword [esi + 0x28], edx
mov dword [esi + 0x10], ecx
mov dword [esi + 0x34], eax
lea eax, [edx*8]
lea eax, [eax + eax*2]
mov ecx, dword [esi + 0x14]
shl ecx, 4
lea ecx, [ecx + ecx*2]
lea edx, [esi + ecx]
add edx, 0x1c0
add edx, eax
lea edi, [esi + ecx]
add edi, 0x220
add edi, eax
lea ebx, [esi + ecx]
add ebx, 0x280
add ebx, eax
mov eax, dword [esi + 0x10]
lea eax, [eax*4]
lea eax, [eax + eax*2]
add edx, eax
add edi, eax
add ebx, eax
mov ecx, dword [esi + 0x18]
push dword [ebp + 0x2c]
push dword [ebp + 0x28]
lea eax, [esi + 0x490]
push eax
lea eax, [esi + 0xf0]
push eax
push dword [ebp + 0x1c]
push edx
push edi
push ebx
lea edi, [esi + 0x54]
push edi
call fcn.10129726
mov eax, dword [esi + 0x28]
lea eax, [eax + eax*2]
shl eax, 5
mov ecx, dword [esi + 0x14]
lea ecx, [ecx + ecx*2]
shl ecx, 6
add ecx, esi
add ecx, 0x2e0
add ecx, eax
mov eax, dword [esi + 0x10]
lea edx, [eax + eax*2]
shl edx, 4
mov dword [esi + 0xc], ecx
mov dword [esi + 8], edx
add ecx, edx
mov dword [esi + 0x44], ecx
push edi
call fcn.10143a3a
lea ecx, [esi + 0x78]
call fcn.10048de8
lea ecx, [esi + 0x6c]
call fcn.10048de8
lea ecx, [esi + 0x60]
call fcn.10048de8
mov ecx, edi
call fcn.10048de8
cmp dword [esi + 0x20], 0
jle 0x101285d0
mov eax, dword [esi + 0x18]
mov eax, dword [eax + 4]
mov eax, dword [eax]
shr eax, 3
and eax, 0x7f
push 0
push eax
call fcn.100d621c
add esp, 8
mov ecx, esp
test al, al
mov dword [esi + 0x24], ecx
je 0x1012825e
push eax
push eax
mov eax, esp
mov dword [esi + 0x1c], eax
mov dword [esi + 0x30], esp
add eax, 4
mov dword [esi + 0x2c], eax
sub esp, 0xc
mov edi, esp
mov eax, dword [esi + 0x3c]
lea eax, [eax + eax*2]
mov ecx, dword [esi + 0x38]
lea ecx, [ecx + ecx*2]
shl ecx, 4
add ecx, esi
add ecx, 0x160
lea eax, [ecx + eax*8]
mov ecx, dword [esi + 0x10]
xor ecx, 1
lea ecx, [ecx + ecx*2]
lea ecx, [eax + ecx*4]
call fcn.100447aa
mov dword [edi + 8], eax
mov ebx, dword [esi + 0x44]
mov ecx, ebx
call fcn.100447aa
mov dword [esi + 0x40], eax
call fcn.1003e6f0
push eax
push dword [esi + 0x40]
call fcn.1003d17a
add esp, 8
mov dword [edi + 4], eax
mov eax, dword [esi + 0x2c]
mov dword [edi], eax
call fcn.1003f662
add esp, 0xc
mov esp, dword [esi + 0x30]
lea eax, [esi + 0x54]
mov ecx, dword [esi + 0x1c]
mov dword [ecx], eax
mov ecx, ebx
mov ebx, dword [esi + 0x18]
call fcn.1004552e
jmp 0x101282d0
push eax
push eax
mov eax, esp
mov dword [esi + 0x1c], eax
mov dword [esi + 0x30], esp
add eax, 4
mov dword [esi + 0x2c], eax
sub esp, 0xc
mov ebx, esp
mov eax, dword [esi + 0x3c]
lea eax, [eax + eax*2]
mov ecx, dword [esi + 0x38]
lea ecx, [ecx + ecx*2]
shl ecx, 4
add ecx, esi
add ecx, 0x100
lea eax, [ecx + eax*8]
mov ecx, dword [esi + 0x10]
xor ecx, 1
lea ecx, [ecx + ecx*2]
lea ecx, [eax + ecx*4]
call fcn.100447aa
mov dword [ebx + 8], eax
mov edi, dword [esi + 0x44]
mov ecx, edi
call fcn.100447aa
mov dword [ebx + 4], eax
mov eax, dword [esi + 0x2c]
mov dword [ebx], eax
mov ebx, dword [esi + 0x18]
call fcn.1003eb18
add esp, 0xc
mov esp, dword [esi + 0x30]
lea eax, [esi + 0x54]
mov ecx, dword [esi + 0x1c]
mov dword [ecx], eax
mov ecx, edi
call fcn.100448c8
mov esp, dword [esi + 0x24]
mov eax, dword [esi + 0x20]
cmp eax, 2
jl 0x10128394
mov eax, dword [ebx + 4]
mov eax, dword [eax]
shr eax, 3
and eax, 0x7f
push 1
push eax
call fcn.100d621c
add esp, 8
mov ecx, esp
test al, al
mov dword [esi + 0x24], ecx
je 0x1012839d
push eax
push eax
mov eax, esp
mov dword [esi + 0x1c], eax
mov dword [esi + 0x30], esp
add eax, 4
mov dword [esi + 0x2c], eax
sub esp, 0xc
mov ebx, esp
mov eax, dword [esi + 0x3c]
lea eax, [eax + eax*2]
mov ecx, dword [esi + 0x38]
lea ecx, [ecx + ecx*2]
shl ecx, 4
add ecx, esi
add ecx, 0x160
lea eax, [ecx + eax*8]
mov ecx, dword [esi + 0x10]
xor ecx, 1
lea ecx, [ecx + ecx*2]
lea ecx, [eax + ecx*4]
call fcn.100447aa
mov dword [ebx + 8], eax
mov eax, dword [esi + 0xc]
mov ecx, dword [esi + 8]
add ecx, eax
add ecx, 0xc
mov dword [esi + 0x40], ecx
call fcn.100447aa
mov edi, eax
call fcn.1003e6f0
push eax
push edi
call fcn.1003d17a
add esp, 8
mov dword [ebx + 4], eax
mov eax, dword [esi + 0x2c]
mov dword [ebx], eax
mov ebx, dword [esi + 0x18]
call fcn.1003f662
add esp, 0xc
mov esp, dword [esi + 0x30]
lea eax, [esi + 0x54]
mov ecx, dword [esi + 0x1c]
mov dword [ecx], eax
mov ecx, dword [esi + 0x40]
call fcn.1004552e
jmp 0x10128418
xor eax, eax
xor ebx, ebx
jmp 0x101284e0
push eax
push eax
mov eax, esp
mov dword [esi + 0x1c], eax
mov dword [esi + 0x30], esp
add eax, 4
mov dword [esi + 0x2c], eax
sub esp, 0xc
mov ebx, esp
mov eax, dword [esi + 0x3c]
lea eax, [eax + eax*2]
mov ecx, dword [esi + 0x38]
lea ecx, [ecx + ecx*2]
shl ecx, 4
add ecx, esi
add ecx, 0x100
lea eax, [ecx + eax*8]
mov ecx, dword [esi + 0x10]
xor ecx, 1
lea ecx, [ecx + ecx*2]
lea ecx, [eax + ecx*4]
call fcn.100447aa
mov dword [ebx + 8], eax
mov eax, dword [esi + 0xc]
mov ecx, dword [esi + 8]
lea edi, [ecx + eax]
add edi, 0xc
mov ecx, edi
call fcn.100447aa
mov dword [ebx + 4], eax
mov eax, dword [esi + 0x2c]
mov dword [ebx], eax
mov ebx, dword [esi + 0x18]
call fcn.1003eb18
add esp, 0xc
mov esp, dword [esi + 0x30]
lea eax, [esi + 0x54]
mov ecx, dword [esi + 0x1c]
mov dword [ecx], eax
mov ecx, edi
call fcn.100448c8
mov esp, dword [esi + 0x24]
mov eax, dword [esi + 0x20]
cmp eax, 3
jl 0x101284dc
mov eax, dword [ebx + 4]
mov eax, dword [eax]
shr eax, 3
and eax, 0x7f
push 2
push eax
call fcn.100d621c
add esp, 8
mov ecx, esp
test al, al
mov dword [esi + 0x24], ecx
je 0x101285ea
push eax
push eax
mov eax, esp
mov dword [esi + 0x1c], eax
mov dword [esi + 0x30], esp
add eax, 4
mov dword [esi + 0x2c], eax
sub esp, 0xc
mov edi, esp
mov eax, dword [esi + 0x3c]
lea eax, [eax + eax*2]
mov ecx, dword [esi + 0x38]
lea ecx, [ecx + ecx*2]
shl ecx, 4
add ecx, esi
add ecx, 0x160
lea eax, [ecx + eax*8]
mov ecx, dword [esi + 0x10]
xor ecx, 1
lea ecx, [ecx + ecx*2]
lea ecx, [eax + ecx*4]
call fcn.100447aa
mov dword [edi + 8], eax
mov eax, dword [esi + 0xc]
mov ecx, dword [esi + 8]
add ecx, eax
add ecx, 0x18
mov dword [esi + 0x40], ecx
call fcn.100447aa
mov ebx, eax
call fcn.1003e6f0
push eax
push ebx
mov ebx, dword [esi + 0x18]
call fcn.1003d17a
add esp, 8
mov dword [edi + 4], eax
mov eax, dword [esi + 0x2c]
mov dword [edi], eax
call fcn.1003f662
add esp, 0xc
mov esp, dword [esi + 0x30]
lea eax, [esi + 0x54]
mov ecx, dword [esi + 0x1c]
mov dword [ecx], eax
mov ecx, dword [esi + 0x40]
call fcn.1004552e
jmp 0x10128665
mov bl, 1
xor eax, eax
xor ecx, ecx
mov edi, dword [esi + 0x10]
or edi, dword [esi + 0x50]
je 0x101285d0
cmp dword [esi + 0x20], 0
mov dword [esi + 0x24], eax
mov dword [esi + 0x1c], ecx
jle 0x10128527
mov dword [esi + 0x10], esp
push eax
sub esp, 8
mov edi, esp
mov ecx, dword [esi + 0x44]
call fcn.100447aa
mov dword [edi + 8], eax
lea eax, [esi + 0x54]
mov dword [edi], eax
lea eax, [esi + 0x2e0]
mov dword [edi + 4], eax
call fcn.10044d93
add esp, 0xc
mov esp, dword [esi + 0x10]
test bl, bl
je 0x1012855e
mov edi, esp
push eax
sub esp, 8
mov ebx, esp
mov eax, dword [esi + 0xc]
mov ecx, dword [esi + 8]
add ecx, eax
add ecx, 0xc
call fcn.100447aa
mov dword [ebx + 8], eax
lea eax, [esi + 0x54]
mov dword [ebx], eax
lea eax, [esi + 0x2ec]
mov dword [ebx + 4], eax
call fcn.10044d93
add esp, 0xc
mov esp, edi
cmp byte [esi + 0x1c], 0
je 0x10128597
mov edi, esp
push eax
sub esp, 8
mov ebx, esp
mov eax, dword [esi + 0xc]
mov ecx, dword [esi + 8]
add ecx, eax
add ecx, 0x18
call fcn.100447aa
mov dword [ebx + 8], eax
lea eax, [esi + 0x54]
mov dword [ebx], eax
lea eax, [esi + 0x2f8]
mov dword [ebx + 4], eax
call fcn.10044d93
add esp, 0xc
mov esp, edi
cmp byte [esi + 0x24], 0
je 0x101285d0
mov edi, esp
push eax
sub esp, 8
mov ebx, esp
mov eax, dword [esi + 0xc]
mov ecx, dword [esi + 8]
add ecx, eax
add ecx, 0x24
call fcn.100447aa
mov dword [ebx + 8], eax
lea eax, [esi + 0x54]
mov dword [ebx], eax
lea eax, [esi + 0x304]
mov dword [ebx + 4], eax
call fcn.10044d93
add esp, 0xc
mov esp, edi
xor ecx, ecx
inc ecx
test byte [esi + 0x34], 1
mov eax, 0
mov edx, dword [esi + 0x28]
jne 0x101280de
jmp 0x101287bd
push eax
push eax
mov eax, esp
mov dword [esi + 0x1c], eax
mov dword [esi + 0x30], esp
add eax, 4
mov dword [esi + 0x2c], eax
sub esp, 0xc
mov ebx, esp
mov eax, dword [esi + 0x3c]
lea eax, [eax + eax*2]
mov ecx, dword [esi + 0x38]
lea ecx, [ecx + ecx*2]
shl ecx, 4
add ecx, esi
add ecx, 0x100
lea eax, [ecx + eax*8]
mov ecx, dword [esi + 0x10]
xor ecx, 1
lea ecx, [ecx + ecx*2]
lea ecx, [eax + ecx*4]
call fcn.100447aa
mov dword [ebx + 8], eax
mov eax, dword [esi + 0xc]
mov ecx, dword [esi + 8]
lea edi, [ecx + eax]
add edi, 0x18
mov ecx, edi
call fcn.100447aa
mov dword [ebx + 4], eax
mov eax, dword [esi + 0x2c]
mov dword [ebx], eax
mov ebx, dword [esi + 0x18]
call fcn.1003eb18
add esp, 0xc
mov esp, dword [esi + 0x30]
lea eax, [esi + 0x54]
mov ecx, dword [esi + 0x1c]
mov dword [ecx], eax
mov ecx, edi
call fcn.100448c8
mov esp, dword [esi + 0x24]
mov eax, dword [esi + 0x20]
cmp eax, 4
jl 0x10128729
mov eax, dword [ebx + 4]
mov eax, dword [eax]
shr eax, 3
and eax, 0x7f
push 3
push eax
call fcn.100d621c
add esp, 8
mov ecx, esp
test al, al
mov dword [esi + 0x24], ecx
je 0x10128734
push eax
push eax
mov eax, esp
mov dword [esi + 0x1c], eax
mov dword [esi + 0x30], esp
add eax, 4
mov dword [esi + 0x2c], eax
sub esp, 0xc
mov edi, esp
mov eax, dword [esi + 0x3c]
lea eax, [eax + eax*2]
mov ecx, dword [esi + 0x38]
lea ecx, [ecx + ecx*2]
shl ecx, 4
add ecx, esi
add ecx, 0x160
lea eax, [ecx + eax*8]
mov ecx, dword [esi + 0x10]
xor ecx, 1
lea ecx, [ecx + ecx*2]
lea ecx, [eax + ecx*4]
call fcn.100447aa
mov dword [edi + 8], eax
mov eax, dword [esi + 0xc]
mov ecx, dword [esi + 8]
add ecx, eax
add ecx, 0x24
mov dword [esi + 0x40], ecx
call fcn.100447aa
mov ebx, eax
call fcn.1003e6f0
push eax
push ebx
call fcn.1003d17a
add esp, 8
mov dword [edi + 4], eax
mov eax, dword [esi + 0x2c]
mov dword [edi], eax
mov edi, dword [esi + 0x10]
call fcn.1003f662
add esp, 0xc
mov esp, dword [esi + 0x30]
lea eax, [esi + 0x54]
mov ecx, dword [esi + 0x1c]
mov dword [ecx], eax
mov ecx, dword [esi + 0x40]
call fcn.1004552e
jmp 0x101287af
mov bl, 1
xor eax, eax
mov cl, 1
jmp 0x101284e2
push eax
push eax
mov eax, esp
mov dword [esi + 0x1c], eax
mov dword [esi + 0x30], esp
add eax, 4
mov dword [esi + 0x2c], eax
sub esp, 0xc
mov ebx, esp
mov eax, dword [esi + 0x3c]
lea eax, [eax + eax*2]
mov ecx, dword [esi + 0x38]
lea ecx, [ecx + ecx*2]
shl ecx, 4
add ecx, esi
add ecx, 0x100
lea eax, [ecx + eax*8]
mov ecx, dword [esi + 0x10]
xor ecx, 1
lea ecx, [ecx + ecx*2]
lea ecx, [eax + ecx*4]
call fcn.100447aa
mov dword [ebx + 8], eax
mov eax, dword [esi + 0xc]
mov ecx, dword [esi + 8]
lea edi, [ecx + eax]
add edi, 0x24
mov ecx, edi
call fcn.100447aa
mov dword [ebx + 4], eax
mov eax, dword [esi + 0x2c]
mov dword [ebx], eax
call fcn.1003eb18
add esp, 0xc
mov esp, dword [esi + 0x30]
lea eax, [esi + 0x54]
mov ecx, dword [esi + 0x1c]
mov dword [ecx], eax
mov ecx, edi
mov edi, dword [esi + 0x10]
call fcn.100448c8
mov esp, dword [esi + 0x24]
mov al, 1
mov bl, 1
mov cl, 1
jmp 0x101284e5
xor edx, edx
inc edx
test byte [esi + 0x4c], 1
mov eax, 0
mov ecx, dword [esi + 0x14]
jne 0x101280c5
xor ecx, ecx
inc ecx
test byte [esi + 0x48], 1
mov eax, 0
jne 0x101280b3
cmp dword [esi + 0x20], 0
mov ebx, dword [esi + 0x18]
jle 0x10128abb
mov edi, dword [ebp + 8]
mov ecx, edi
lea eax, [esi + 0x2e0]
push eax
lea eax, [esi + 0x54]
push eax
call fcn.100448e4
cmp dword [esi + 0x20], 1
jne 0x10128894
mov dword [esi + 0xc], 0
mov dword [esi + 8], 0
jmp 0x101288eb
lea edx, [esi + 0xd8]
lea edi, [esi + 0xe4]
lea ebx, [esi + 0x2e0]
mov ecx, dword [esi + 0x18]
push dword [ebp + 0x2c]
push dword [ebp + 0x28]
lea eax, [esi + 0x490]
push eax
lea eax, [esi + 0xf0]
push eax
push dword [ebp + 0x1c]
lea eax, [esi + 0xcc]
push eax
push edx
push edi
push ebx
call fcn.10129726
mov ecx, dword [ebp + 8]
push ebx
call fcn.10143a3a
lea ecx, [esi + 0x304]
call fcn.10048de8
lea ecx, [esi + 0x2f8]
call fcn.10048de8
lea ecx, [esi + 0x2ec]
call fcn.10048de8
mov ecx, ebx
call fcn.10048de8
jmp 0x10128bb6
lea ecx, [edi + 0xc]
lea eax, [esi + 0x2ec]
push eax
lea eax, [esi + 0x54]
push eax
call fcn.100448e4
mov eax, dword [esi + 0x20]
cmp eax, 3
jl 0x101288df
lea ecx, [edi + 0x18]
lea edx, [esi + 0x2f8]
push edx
lea edx, [esi + 0x54]
push edx
call fcn.100448e4
cmp dword [esi + 0x20], 3
jne 0x10128c32
mov al, 1
mov dword [esi + 0xc], eax
mov dword [esi + 0x10], 0
mov al, 1
mov dword [esi + 8], eax
jmp 0x101288f2
mov dword [esi + 0xc], 0
mov al, 1
mov dword [esi + 8], eax
mov dword [esi + 0x10], 0
mov eax, dword [ebx + 4]
mov eax, dword [eax]
shr eax, 3
and eax, 0x7f
push 0
push eax
call fcn.100d621c
add esp, 8
test al, al
jne 0x1012895c
mov dword [esi + 0x14], esp
push eax
push eax
mov edi, esp
mov dword [esi + 0x20], esp
lea eax, [edi + 4]
mov dword [esi + 0x28], eax
sub esp, 0xc
mov ebx, esp
mov ecx, dword [ebp + 8]
call fcn.100447aa
mov dword [ebx + 8], eax
mov ecx, dword [ebp + 8]
call fcn.100447aa
mov dword [ebx + 4], eax
mov eax, dword [esi + 0x28]
mov dword [ebx], eax
mov ebx, dword [esi + 0x18]
call fcn.1003ea0a
add esp, 0xc
mov esp, dword [esi + 0x20]
lea eax, [esi + 0x54]
mov dword [edi], eax
mov edi, dword [ebp + 8]
mov ecx, edi
call fcn.100448c8
mov esp, dword [esi + 0x14]
cmp byte [esi + 8], 0
je 0x101289d0
mov eax, dword [ebx + 4]
mov eax, dword [eax]
shr eax, 3
and eax, 0x7f
push 1
push eax
call fcn.100d621c
add esp, 8
test al, al
jne 0x101289d0
mov dword [esi + 8], esp
push eax
push eax
mov eax, esp
mov dword [esi + 0x14], eax
mov dword [esi + 0x20], esp
add eax, 4
mov dword [esi + 0x28], eax
sub esp, 0xc
mov ebx, esp
add edi, 0xc
mov ecx, edi
call fcn.100447aa
mov dword [ebx + 8], eax
mov ecx, edi
call fcn.100447aa
mov dword [ebx + 4], eax
mov eax, dword [esi + 0x28]
mov dword [ebx], eax
mov ebx, dword [esi + 0x18]
call fcn.1003ea0a
add esp, 0xc
mov esp, dword [esi + 0x20]
lea eax, [esi + 0x54]
mov ecx, dword [esi + 0x14]
mov dword [ecx], eax
mov ecx, edi
call fcn.100448c8
mov esp, dword [esi + 8]
cmp byte [esi + 0xc], 0
je 0x10128a47
mov eax, dword [ebx + 4]
mov eax, dword [eax]
shr eax, 3
and eax, 0x7f
push 2
push eax
call fcn.100d621c
add esp, 8
test al, al
jne 0x10128a47
mov dword [esi + 0xc], esp
push eax
push eax
mov eax, esp
mov dword [esi + 8], eax
mov dword [esi + 0x14], esp
add eax, 4
mov dword [esi + 0x20], eax
sub esp, 0xc
mov ebx, esp
mov eax, dword [ebp + 8]
lea edi, [eax + 0x18]
mov ecx, edi
call fcn.100447aa
mov dword [ebx + 8], eax
mov ecx, edi
call fcn.100447aa
mov dword [ebx + 4], eax
mov eax, dword [esi + 0x20]
mov dword [ebx], eax
mov ebx, dword [esi + 0x18]
call fcn.1003ea0a
add esp, 0xc
mov esp, dword [esi + 0x14]
lea eax, [esi + 0x54]
mov ecx, dword [esi + 8]
mov dword [ecx], eax
mov ecx, edi
call fcn.100448c8
mov esp, dword [esi + 0xc]
cmp byte [esi + 0x10], 0
je 0x10128abb
mov eax, dword [ebx + 4]
mov eax, dword [eax]
shr eax, 3
and eax, 0x7f
push 3
push eax
call fcn.100d621c
add esp, 8
test al, al
jne 0x10128abb
mov dword [esi + 0x10], esp
push eax
push eax
mov eax, esp
mov dword [esi + 0x18], eax
mov dword [esi + 0xc], esp
add eax, 4
mov dword [esi + 8], eax
sub esp, 0xc
mov ebx, esp
mov edi, dword [ebp + 8]
add edi, 0x24
mov ecx, edi
call fcn.100447aa
mov dword [ebx + 8], eax
mov ecx, edi
call fcn.100447aa
mov dword [ebx + 4], eax
mov eax, dword [esi + 8]
mov dword [ebx], eax
call fcn.1003ea0a
add esp, 0xc
mov esp, dword [esi + 0xc]
lea eax, [esi + 0x54]
mov ecx, dword [esi + 0x18]
mov dword [ecx], eax
mov ecx, edi
call fcn.100448c8
mov esp, dword [esi + 0x10]
mov edi, 0x54
lea ecx, [esi + edi]
add ecx, 0x100
call fcn.10048de8
add edi, 0xfffffff4
cmp edi, 0xfffffff4
jne 0x10128ac0
mov edi, 0x54
lea ecx, [esi + edi]
add ecx, 0x160
call fcn.10048de8
add edi, 0xfffffff4
cmp edi, 0xfffffff4
jne 0x10128adb
lea ecx, [esi + 0x84]
call fcn.10048de8
lea ecx, [esi + 0x90]
call fcn.10048de8
lea ecx, [esi + 0x9c]
call fcn.10048de8
lea ecx, [esi + 0xa8]
call fcn.10048de8
lea ecx, [esi + 0xb4]
call fcn.10048de8
lea ecx, [esi + 0xc0]
call fcn.10048de8
mov edi, 0x54
lea ecx, [esi + edi]
add ecx, 0x1c0
call fcn.10048de8
add edi, 0xfffffff4
cmp edi, 0xfffffff4
jne 0x10128b38
mov edi, 0x54
lea ecx, [esi + edi]
add ecx, 0x220
call fcn.10048de8
add edi, 0xfffffff4
cmp edi, 0xfffffff4
jne 0x10128b53
mov edi, 0x54
lea ecx, [esi + edi]
add ecx, 0x280
call fcn.10048de8
add edi, 0xfffffff4
cmp edi, 0xfffffff4
jne 0x10128b6e
lea edi, [esi + 0x454]
mov ebx, 0xfffffe80
mov ecx, edi
call fcn.10048de8
lea ecx, [edi - 0xc]
call fcn.10048de8
lea ecx, [edi - 0x18]
call fcn.10048de8
lea ecx, [edi - 0x24]
call fcn.10048de8
add edi, 0xffffffd0
add ebx, 0x30
jne 0x10128b8f
lea ecx, [esi + 0xcc]
call fcn.10048de8
lea ecx, [esi + 0xd8]
call fcn.10048de8
lea ecx, [esi + 0xe4]
call fcn.10048de8
mov edi, 0x24
lea ecx, [esi + edi]
add ecx, 0x460
call fcn.10048de8
add edi, 0xfffffff4
cmp edi, 0xfffffff4
jne 0x10128bdc
mov edi, 0x30
lea ecx, [esi + edi]
add ecx, 0x490
call fcn.10048de8
add edi, 0xfffffff0
cmp edi, 0xfffffff0
jne 0x10128bf7
lea ecx, [esi + 0xf0]
call fcn.10048de8
mov ecx, dword [esi + 0x4d8]
xor ecx, ebp
call fcn.101d7611
mov eax, dword [ebp + 8]
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret 0x28
lea ecx, [edi + 0x24]
lea eax, [esi + 0x304]
push eax
lea eax, [esi + 0x54]
push eax
call fcn.100448e4
mov al, 1
mov dword [esi + 0xc], eax
mov al, 1
mov dword [esi + 8], eax
mov al, 1
mov dword [esi + 0x10], eax
jmp 0x101288f2