Function at 0x10122240
Capabilities:
Get thread local storage value
Resolve function by parsing pe exports

Disassembly:
mov edi, edi
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0xc4
mov eax, dword [ebp + 0x14]
mov edx, dword [ebp + 0x18]
push ebx
mov ebx, ecx
mov dword [esp + 0x58], eax
mov eax, dword [ebx + 8]
push esi
mov esi, dword [ebp + 0xc]
xor ecx, ecx
mov dword [esp + 0xa0], eax
mov dword [esp + 0xb0], eax
mov eax, esi
mov dword [esp + 0x58], edx
mov edx, 2
and eax, 0xfff00000
push edi
mov dword [esp + 0x1c], ebx
mov dword [esp + 0x34], ecx
mov dword [esp + 0xa8], edx
mov dword [esp + 0xa0], ecx
mov dword [esp + 0xac], ecx
mov dword [esp + 0xb8], edx
mov dword [esp + 0xb0], ecx
mov dword [esp + 0xbc], ecx
mov byte [esp + 0x4f], cl
cmp eax, 0x20200000
je 0x101222de
cmp eax, 0x20300000
je 0x101222de
xor edx, edx
cmp eax, 0x70000000
setne dl
dec edx
and edx, 0x20000002
mov dword [esp + 0x38], edx
jmp 0x101222e6
mov dword [esp + 0x38], 0x20000032
mov edx, dword [esp + 0x38]
or dword [ebp + 0x24], edx
cmp eax, 0x9ff00000
jne 0x10122308
and esi, 0xfffff
or esi, 0x10000000
mov byte [esp + 0x4f], 1
mov dword [ebp + 0xc], esi
mov eax, esi
and eax, 0xfff00000
cmp eax, 0x20500000
jne 0x101223b4
test byte [ebp + 0x24], 2
je 0x101223b4
mov edi, esi
and edi, 0xfffff
mov dword [esp + 0x14], ecx
jbe 0x1012239d
mov ecx, dword [ebp + 0x14]
fldz
mov eax, dword [ebp + 0x18]
fld1
sub eax, ecx
mov dword [esp + 0x18], eax
jmp 0x10122348
mov eax, dword [esp + 0x18]
mov edx, dword [ecx]
cmp edx, dword [eax + ecx]
jne 0x1012238e
mov eax, dword [edx + 0x40]
and eax, 0x100000
xor esi, esi
or eax, esi
je 0x10122396
fxch st(1)
fcom qword [edx + 0xd0]
fnstsw ax
test ah, 0x41
jp 0x10122392
fxch st(1)
fcom qword [edx + 0xd8]
fnstsw ax
test ah, 1
jne 0x10122396
mov eax, dword [esp + 0x14]
mov esi, dword [ebp + 0xc]
inc eax
add ecx, 4
mov dword [esp + 0x14], eax
cmp eax, edi
jb 0x10122344
fstp st(1)
jmp 0x1012239b
fstp st(0)
jmp 0x10122398
fstp st(1)
mov esi, dword [ebp + 0xc]
fstp st(0)
cmp dword [esp + 0x14], edi
jne 0x101223b4
and edi, 0xfffff
or edi, 0x10000000
mov dword [ebp + 0xc], edi
mov esi, edi
cmp esi, 0x50000001
jne 0x101224d4
mov dword [ebp + 0xc], 0x20500001
mov esi, dword [ebp + 0xc]
mov ecx, dword [ebx + 8]
test byte [ecx + 0x7fcd], 2
je 0x10122750
mov eax, esi
and eax, 0xfff00000
mov dword [esp + 0x38], eax
cmp eax, 0x20000000
je 0x10122405
cmp eax, 0x20100000
je 0x10122405
cmp eax, 0x20200000
je 0x10122405
cmp eax, 0x20300000
jne 0x10122750
mov eax, dword [ebp + 0xc]
xor edx, edx
and eax, 0xfffff
mov dword [esp + 0x20], edx
mov dword [esp + 0x2c], edx
lea edx, [esp + 0x2c]
mov dword [esp + 0x3c], eax
lea edi, [eax*4]
push edx
lea eax, [esp + 0x24]
mov esi, 2
push eax
mov dword [esp + 0x2c], ecx
push ecx
lea ecx, [esi + 2]
mov dword [esp + 0x34], esi
call fcn.100db050
mov dword [esp + 0xc], eax
test eax, eax
jl 0x10124460
mov ecx, dword [esp + 0x20]
xor eax, eax
mov dword [esp + eax*4 + 0x68], ecx
inc eax
add ecx, edi
cmp eax, 4
jb 0x10122454
mov esi, dword [esp + 0x3c]
test esi, esi
jbe 0x1012261f
mov edx, dword [ebp + 0x14]
mov eax, dword [esp + 0x70]
mov edi, dword [ebp + 0x18]
mov ecx, dword [esp + 0x74]
sub edi, edx
sub edx, eax
mov dword [esp + 0x44], edx
sub ecx, eax
mov dword [esp + 0x50], esi
jmp 0x10122490
mov esi, dword [esp + 0x38]
cmp esi, 0x20200000
ja 0x101225dd
je 0x101225d3
cmp esi, 0x20000000
je 0x101225c1
cmp esi, 0x20100000
jne 0x101225f0
mov esi, dword [edx + eax]
add edx, eax
mov dword [eax], esi
mov edx, dword [edx + edi]
mov dword [ecx + eax], edx
mov edx, dword [esp + 0x44]
jmp 0x101225f0
cmp esi, 0x50000002
jne 0x101223ca
mov eax, dword [ebx + 8]
test byte [eax + 0x7fcc], 0x80
jne 0x101223ca
mov esi, dword [ebp + 0x24]
mov edi, dword [ebp + 0x1c]
mov ecx, dword [ebp + 0x18]
mov edx, dword [ebp + 0x14]
or eax, 0xffffffff
mov dword [esp + 0x20], eax
mov dword [esp + 0x24], eax
xor eax, eax
push eax
push eax
push 0x11
and esi, 0xc0
push esi
push eax
and edi, 2
push edi
push ecx
mov ecx, dword [ebp + 8]
push edx
lea eax, [esp + 0x40]
push eax
push 0x20500001
push ecx
mov ecx, ebx
call fcn.10122240
mov dword [esp + 0xc], eax
test eax, eax
jl 0x10124469
mov edx, dword [ebp + 0x18]
push 0
push 0
push 0x11
push esi
xor eax, eax
push eax
mov eax, dword [ebp + 0x14]
push edi
add edx, 4
push edx
mov edx, dword [ebp + 8]
add eax, 4
push eax
lea ecx, [esp + 0x44]
push ecx
push 0x20500001
push edx
mov ecx, ebx
call fcn.10122240
mov dword [esp + 0xc], eax
test eax, eax
jl 0x10124469
mov eax, dword [ebp + 0x28]
mov ecx, dword [ebp + 0x24]
mov edx, dword [ebp + 0x20]
push 0
push 0
push eax
mov eax, dword [ebp + 0x1c]
push ecx
push edx
push eax
mov eax, dword [ebp + 0x10]
lea ecx, [esp + 0x3c]
push ecx
mov ecx, dword [ebp + 8]
lea edx, [esp + 0x3c]
push edx
push eax
push 0x20400001
push ecx
mov ecx, ebx
call fcn.10122240
mov dword [esp + 0xc], eax
test eax, eax
jl 0x10124469
mov dword [esp + 0xc], 0
jmp 0x10124470
add edx, eax
mov esi, dword [edx + edi]
mov dword [eax], esi
mov edx, dword [edx]
mov dword [ecx + eax], edx
mov edx, dword [esp + 0x44]
jmp 0x101225f0
mov esi, dword [ebx + 0x74]
mov dword [eax], esi
mov esi, dword [ebx + 0x70]
jmp 0x101225ed
cmp esi, 0x20300000
jne 0x101225f0
mov esi, dword [ebx + 0x70]
mov dword [eax], esi
mov esi, dword [ebx + 0x74]
mov dword [ecx + eax], esi
add eax, 4
sub dword [esp + 0x50], 1
jne 0x10122490
mov esi, dword [esp + 0x3c]
test esi, esi
jbe 0x1012261f
mov edi, dword [esp + 0x68]
or eax, 0xffffffff
mov ecx, esi
rep stosd dword es:[edi], eax
test esi, esi
jbe 0x1012261f
mov edi, dword [esp + 0x6c]
mov ecx, esi
or eax, eax
rep stosd dword es:[edi], eax
mov eax, dword [ebp + 0x24]
mov esi, dword [ebp + 0x1c]
mov edi, dword [esp + 0x3c]
xor ecx, ecx
push ecx
push ecx
push 0x11
and eax, 0xc0
push eax
push ecx
and esi, 2
push esi
push ecx
mov ecx, dword [esp + 0x84]
mov dword [esp + 0x34], eax
mov eax, dword [ebp + 0x18]
push eax
mov eax, dword [ebp + 8]
and edi, 0xfffff
push ecx
mov edx, edi
or edx, 0x10100000
push edx
push eax
mov ecx, ebx
call fcn.10122240
mov dword [esp + 0xc], eax
test eax, eax
jge 0x101226b4
cmp dword [esp + 0x20], 0
mov eax, dword [esp + 0x28]
mov ecx, dword [esp + 0x2c]
lea edx, [eax + eax*2]
mov eax, dword [esp + 0x24]
lea edi, [eax + edx*4 + 0x8140]
je 0x10124469
test ecx, ecx
ja 0x10122697
mov ecx, 1
mov ebx, dword [edi]
cmp ecx, dword [ebx + 8]
jae 0x101226a6
sub dword [ebx + 8], ecx
jmp 0x10124469
mov ecx, dword [ebx]
mov dword [edi], ecx
call fcn.100daed0
jmp 0x10124469
mov edx, dword [esp + 0x18]
mov ecx, dword [ebp + 0x14]
push 0
push 0
push 0x11
push edx
mov edx, dword [esp + 0x7c]
xor eax, eax
push eax
mov eax, dword [esp + 0x7c]
push esi
push eax
push ecx
mov ecx, dword [ebp + 8]
push edx
mov eax, edi
or eax, 0x20400000
push eax
push ecx
mov ecx, ebx
call fcn.10122240
mov dword [esp + 0xc], eax
test eax, eax
jl 0x10124460
mov edx, dword [ebp + 0x28]
mov eax, dword [ebp + 0x24]
mov ecx, dword [ebp + 0x20]
push 0
push 0
push edx
mov edx, dword [ebp + 0x1c]
push eax
mov eax, dword [esp + 0x30]
push ecx
mov ecx, dword [esp + 0x50]
push edx
lea edx, [eax + ecx*8]
mov eax, dword [esp + 0x84]
mov ecx, dword [ebp + 0x10]
push edx
mov edx, dword [ebp + 8]
push eax
push ecx
or edi, 0x30000000
push edi
push edx
mov ecx, ebx
call fcn.10122240
mov dword [esp + 0xc], eax
lea esi, [esp + 0x20]
test eax, eax
jl 0x10124464
mov dword [esp + 0xc], 0
call fcn.100da650
jmp 0x10124470
test byte [ecx + 0x7fd3], 8
mov eax, 0x11
mov edx, esi
mov dword [esp + 0x64], edx
mov dword [esp + 0x38], 0xffffffff
mov dword [esp + 0x44], eax
mov dword [esp + 0x58], eax
mov dword [esp + 0x50], eax
je 0x101229c2
mov eax, esi
and eax, 0xfff00000
cmp eax, 0x10000000
je 0x101229c2
cmp eax, 0x30100000
je 0x101229c2
cmp eax, 0x11f00000
je 0x101229c2
cmp eax, 0x20700000
je 0x101229c2
cmp eax, 0x11700000
je 0x101229c2
cmp eax, 0x11c00000
je 0x101229c2
cmp eax, 0x11e00000
je 0x101229c2
cmp eax, 0x11400000
je 0x101229c2
cmp eax, 0x22900000
je 0x101229c2
cmp eax, 0x11800000
je 0x101229c2
cmp eax, 0x22a00000
je 0x101229c2
cmp eax, 0x12000000
je 0x101229c2
cmp eax, 0x22f00000
je 0x101229c2
cmp eax, 0x23000000
je 0x101229c2
cmp eax, 0x23100000
je 0x101229c2
cmp eax, 0x51100000
je 0x101229c2
cmp eax, 0x51200000
je 0x101229c2
mov ecx, esi
shr ecx, 0x1c
cmp ecx, 6
je 0x101229c2
cmp ecx, 9
je 0x101229c2
cmp ecx, 0xb
je 0x101229c2
cmp eax, 0x50600000
ja 0x1012287d
je 0x101229c2
cmp eax, 0x50400000
je 0x101229c2
cmp eax, 0x50500000
jmp 0x1012288d
cmp eax, 0x50800000
je 0x101229c2
cmp eax, 0x50900000
je 0x101229c2
mov eax, esi
call fcn.10170900
test al, al
jne 0x101229c2
mov eax, esi
call fcn.10170940
test al, al
jne 0x101229c2
mov edx, dword [ebp + 0x18]
lea eax, [esp + 0x58]
push eax
mov eax, dword [ebp + 0x14]
lea ecx, [esp + 0x48]
push ecx
push edx
push eax
push ebx
mov eax, esi
call fcn.10124c40
mov dword [esp + 0xc], eax
test eax, eax
jl 0x10124469
mov edi, esi
and edi, 0xfffff
lea eax, [esp + 0xa0]
call fcn.100da490
mov dword [esp + 0xc], eax
test eax, eax
jl 0x10124469
lea eax, [esp + 0xb0]
call fcn.100da490
mov dword [esp + 0xc], eax
test eax, eax
jl 0x10124469
mov ecx, dword [esp + 0x44]
mov eax, dword [esp + 0xb0]
lea edx, [esp + 0x50]
push edx
push eax
mov dword [esp + 0x58], ecx
mov ecx, dword [esp + 0xa8]
push ecx
lea edx, [esp + 0x68]
push edx
lea eax, [esp + 0x70]
push eax
mov eax, dword [esp + 0x6c]
lea ecx, [esp + 0x4c]
push ecx
mov ecx, dword [ebp + 0x24]
lea edx, [esp + 0x7c]
push edx
mov edx, dword [ebp + 8]
push eax
push ecx
push esi
push edx
push ebx
call fcn.10124d40
mov dword [esp + 0xc], eax
test eax, eax
jl 0x10124469
mov edx, dword [esp + 0x64]
cmp edx, esi
je 0x101229c2
mov eax, dword [ebp + 0x24]
mov edi, eax
and edi, 0x20000002
cmp edi, 0x20000002
je 0x10122987
and eax, 0x20000004
cmp eax, 0x20000004
jne 0x101229c2
mov eax, edx
call fcn.10171190
mov cl, al
test cl, cl
jne 0x1012299f
mov eax, edx
call fcn.101711f0
test al, al
je 0x101229c2
xor eax, eax
test cl, cl
je 0x101229bf
cmp edi, 0x20000002
jne 0x101229b2
mov eax, 0x40000002
cmp edi, 0x20000004
jne 0x101229bf
or eax, 0x40000004
mov dword [ebp + 0x24], eax
and edx, 0xfff00000
mov cl, 0x40
cmp edx, 0x21500000
jne 0x10122d79
mov edi, dword [ebx + 8]
test byte [edi + 0x7fcc], cl
jne 0x10122d79
mov eax, dword [ebp + 0xc]
xor edx, edx
mov dword [esp + 0x20], edx
mov dword [esp + 0x2c], edx
mov ecx, edi
lea edx, [esp + 0x2c]
push edx
and eax, 0xfffff
lea edx, [esp + 0x24]
lea edi, [eax + eax*2]
mov esi, 2
push edx
mov dword [esp + 0x2c], ecx
add edi, edi
push ecx
add edi, edi
lea ecx, [esi + 2]
mov dword [esp + 0x20], eax
mov dword [esp + 0x34], esi
call fcn.100db050
mov dword [esp + 0xc], eax
test eax, eax
jl 0x10124460
mov eax, dword [ebx + 8]
mov ecx, dword [eax + 0x8024]
push 0
push 0x80000000
push ecx
lea edx, [esp + 0xa4]
push edx
push eax
lea eax, [esi + 0xa]
call fcn.10169d70
mov dword [esp + 0xc], eax
test eax, eax
jl 0x10124460
mov edi, dword [esp + 0x14]
mov ecx, dword [esp + 0x20]
xor eax, eax
lea edx, [edi*4]
nop
mov dword [esp + eax*4 + 0x68], ecx
inc eax
add ecx, edx
cmp eax, 0xc
jb 0x10122a70
mov eax, dword [esp + 0x6c]
mov byte [esp + 0x13], 1
test edi, edi
jbe 0x10122b02
mov edx, dword [esp + 0x70]
mov ecx, dword [esp + 0x68]
mov esi, dword [esp + 0x5c]
sub edx, eax
mov dword [esp + 0x44], edx
mov edx, dword [esp + 0x60]
sub ecx, eax
sub edx, eax
mov dword [esp + 0x18], ecx
sub esi, eax
mov dword [esp + 0x38], edi
jmp 0x10122ab4
mov ecx, dword [esp + 0x18]
mov edi, dword [edx + eax]
mov dword [ecx + eax], edi
mov ecx, dword [esi + eax]
mov edi, dword [esp + 0x44]
mov dword [eax], ecx
mov ecx, dword [esp + 0x98]
mov dword [edi + eax], ecx
mov ecx, dword [edx + eax]
mov ecx, dword [ecx + 0x40]
and ecx, 0x800000
xor edi, edi
or ecx, edi
je 0x10122aef
mov ecx, dword [esi + eax]
mov ecx, dword [ecx + 0x40]
and ecx, 0x800000
or ecx, edi
jne 0x10122af4
mov byte [esp + 0x13], 0
add eax, 4
sub dword [esp + 0x38], 1
jne 0x10122ab0
mov edi, dword [esp + 0x14]
lea ecx, [edi + edi*8]
test ecx, ecx
jbe 0x10122b16
mov edi, dword [esp + 0x74]
or eax, 0xffffffff
rep stosd dword es:[edi], eax
mov edi, dword [esp + 0x14]
mov edx, dword [esp + 0x68]
mov ecx, dword [esp + 0x74]
mov esi, dword [ebp + 8]
push 0
push 0
push 0x11
push 0
push 0
push 0
push 0
push edx
and edi, 0xfffff
push ecx
mov eax, edi
or eax, 0x12100000
push eax
push esi
mov ecx, ebx
mov dword [esp + 0x64], eax
call fcn.10122240
mov dword [esp + 0xc], eax
test eax, eax
jl 0x10124460
mov edx, dword [esp + 0x6c]
mov eax, dword [esp + 0x78]
mov ecx, dword [esp + 0x38]
push 0
push 0
push 0x11
push 0
push 0
push 0
push 0
push edx
push eax
push ecx
push esi
mov ecx, ebx
call fcn.10122240
mov dword [esp + 0xc], eax
test eax, eax
jl 0x10124460
mov edx, dword [esp + 0x6c]
mov eax, dword [esp + 0x68]
mov ecx, dword [esp + 0x7c]
push 0
push 0
push 0x11
push 0
push 0
push 0
push edx
push eax
push ecx
mov edx, edi
or edx, 0x22300000
push edx
push esi
mov ecx, ebx
call fcn.10122240
mov dword [esp + 0xc], eax
test eax, eax
jl 0x10124460
mov ecx, dword [esp + 0x68]
mov edx, dword [esp + 0x74]
push 0
push 0
push 0xc
push 0
push 0
push 0
push ecx
mov ecx, dword [esp + 0x9c]
push edx
push ecx
mov eax, edi
or eax, 0x21c00000
push eax
push esi
mov ecx, ebx
mov dword [esp + 0x44], eax
call fcn.10122240
mov dword [esp + 0xc], eax
test eax, eax
jl 0x10124460
mov edx, dword [esp + 0x6c]
mov eax, dword [esp + 0x78]
mov ecx, dword [esp + 0x84]
push 0
push 0
push 0xc
push 0
push 0
push 0
push edx
mov edx, dword [esp + 0x34]
push eax
push ecx
push edx
push esi
mov ecx, ebx
call fcn.10122240
mov dword [esp + 0xc], eax
test eax, eax
jl 0x10124460
mov eax, dword [esp + 0x8c]
mov edx, dword [esp + 0x80]
push eax
mov ecx, edi
or ecx, 0x21800000
push ecx
mov ecx, dword [esp + 0x8c]
push esi
push ebx
xor eax, eax
call fcn.1010b2f0
mov dword [esp + 0xc], eax
test eax, eax
jl 0x10124460
mov edx, dword [esp + 0x8c]
mov eax, dword [esp + 0x88]
mov ecx, dword [esp + 0x38]
push 0
push 0
push 0x11
push 0
push 0
push 0
push 0
push edx
push eax
push ecx
push esi
mov ecx, ebx
call fcn.10122240
mov dword [esp + 0xc], eax
test eax, eax
jl 0x10124460
mov edx, dword [esp + 0x90]
mov ecx, dword [esp + 0x70]
push edx
mov edx, dword [esp + 0x80]
mov eax, edi
or eax, 0x22100000
push eax
push esi
push ebx
xor eax, eax
call fcn.1010b2f0
mov dword [esp + 0xc], eax
test eax, eax
jl 0x10124460
mov ecx, dword [esp + 0x90]
mov edx, dword [esp + 0x94]
push 0
push 0
push 0x11
push 0
push 0
push 0
push 0
push ecx
push edx
mov eax, edi
or eax, 0x12f00000
push eax
push esi
mov ecx, ebx
call fcn.10122240
mov dword [esp + 0xc], eax
test eax, eax
jl 0x10124460
mov ecx, dword [esp + 0x88]
mov edx, dword [esp + 0x94]
mov eax, dword [ebp + 0x10]
push 0
push 0
push 0xb
push 0
push 0
push 0
push ecx
push edx
push eax
or edi, 0x30100000
push edi
push esi
mov ecx, ebx
call fcn.10122240
mov dword [esp + 0xc], eax
test eax, eax
jl 0x10124460
cmp byte [esp + 0x13], 0
jne 0x10122d63
push 0x1008c758
mov eax, dword [ebp + 8]
mov esi, 0xde4
mov ecx, ebx
call fcn.1010ad30
add esp, 4
lea esi, [esp + 0x20]
mov dword [esp + 0xc], 0
call fcn.100da650
jmp 0x10124470
cmp edx, 0x21600000
jne 0x101230dc
mov eax, dword [ebx + 8]
test byte [eax + 0x7fcc], cl
jne 0x101230dc
mov edi, dword [ebp + 0xc]
and edi, 0xfffff
xor ecx, ecx
mov dword [esp + 0x14], edi
imul edi, edi, 0xb
mov dword [esp + 0x20], ecx
mov dword [esp + 0x2c], ecx
lea ecx, [esp + 0x2c]
push ecx
lea edx, [esp + 0x24]
mov esi, 2
push edx
push eax
lea ecx, [esi + 2]
mov dword [esp + 0x30], eax
mov dword [esp + 0x34], esi
call fcn.100db050
mov dword [esp + 0xc], eax
test eax, eax
jl 0x10124460
mov eax, dword [ebx + 8]
mov ecx, dword [eax + 0x8024]
push 0
push 0x80000000
push ecx
lea edx, [esp + 0xa4]
push edx
push eax
lea eax, [esi + 0xa]
call fcn.10169d70
mov dword [esp + 0xc], eax
test eax, eax
jl 0x10124460
mov edi, dword [esp + 0x14]
mov ecx, dword [esp + 0x20]
xor eax, eax
lea edx, [edi*4]
lea esp, [esp]
mov dword [esp + eax*4 + 0x68], ecx
inc eax
add ecx, edx
cmp eax, 0xb
jb 0x10122e20
mov eax, dword [esp + 0x6c]
mov byte [esp + 0x13], 1
test edi, edi
jbe 0x10122eb2
mov edx, dword [esp + 0x70]
mov ecx, dword [esp + 0x68]
mov esi, dword [esp + 0x5c]
sub edx, eax
mov dword [esp + 0x44], edx
mov edx, dword [esp + 0x60]
sub ecx, eax
sub edx, eax
mov dword [esp + 0x18], ecx
sub esi, eax
mov dword [esp + 0x38], edi
jmp 0x10122e64
mov ecx, dword [esp + 0x18]
mov edi, dword [edx + eax]
mov dword [ecx + eax], edi
mov ecx, dword [esi + eax]
mov edi, dword [esp + 0x44]
mov dword [eax], ecx
mov ecx, dword [esp + 0x98]
mov dword [edi + eax], ecx
mov ecx, dword [edx + eax]
mov ecx, dword [ecx + 0x40]
and ecx, 0x800000
xor edi, edi
or ecx, edi
je 0x10122e9f
mov ecx, dword [esi + eax]
mov ecx, dword [ecx + 0x40]
and ecx, 0x800000
or ecx, edi
jne 0x10122ea4
mov byte [esp + 0x13], 0
add eax, 4
sub dword [esp + 0x38], 1
jne 0x10122e60
mov edi, dword [esp + 0x14]
lea ecx, [edi*8]
test ecx, ecx
jbe 0x10122eca
mov edi, dword [esp + 0x74]
or eax, 0xffffffff
rep stosd dword es:[edi], eax
mov edi, dword [esp + 0x14]
mov edx, dword [esp + 0x68]
mov ecx, dword [esp + 0x74]
mov esi, dword [ebp + 8]
push 0
push 0
push 0x11
push 0
push 0
push 0
push 0
push edx
and edi, 0xfffff
push ecx
mov eax, edi
or eax, 0x12100000
push eax
push esi
mov ecx, ebx
mov dword [esp + 0x64], eax
call fcn.10122240
mov dword [esp + 0xc], eax
test eax, eax
jl 0x10124460
mov edx, dword [esp + 0x6c]
mov eax, dword [esp + 0x78]
mov ecx, dword [esp + 0x38]
push 0
push 0
push 0x11
push 0
push 0
push 0
push 0
push edx
push eax
push ecx
push esi
mov ecx, ebx
call fcn.10122240
mov dword [esp + 0xc], eax
test eax, eax
jl 0x10124460
mov edx, dword [esp + 0x70]
mov eax, dword [esp + 0x68]
mov ecx, dword [esp + 0x7c]
push 0
push 0
push 0x11
push 0
push 0
push 0
push edx
push eax
push ecx
mov edx, edi
or edx, 0x22100000
push edx
push esi
mov ecx, ebx
call fcn.10122240
mov dword [esp + 0xc], eax
test eax, eax
jl 0x10124460
mov ecx, dword [esp + 0x68]
mov edx, dword [esp + 0x74]
push 0
push 0
push 0xc
push 0
push 0
push 0
push ecx
mov ecx, dword [esp + 0x9c]
push edx
push ecx
mov eax, edi
or eax, 0x21c00000
push eax
push esi
mov ecx, ebx
mov dword [esp + 0x44], eax
call fcn.10122240
mov dword [esp + 0xc], eax
test eax, eax
jl 0x10124460
mov edx, dword [esp + 0x6c]
mov eax, dword [esp + 0x78]
mov ecx, dword [esp + 0x84]
push 0
push 0
push 0xc
push 0
push 0
push 0
push edx
mov edx, dword [esp + 0x34]
push eax
push ecx
push edx
push esi
mov ecx, ebx
call fcn.10122240
mov dword [esp + 0xc], eax
test eax, eax
jl 0x10124460
mov eax, dword [esp + 0x8c]
mov edx, dword [esp + 0x80]
push eax
mov ecx, edi
or ecx, 0x21900000
push ecx
mov ecx, dword [esp + 0x8c]
push esi
push ebx
xor eax, eax
call fcn.1010b2f0
mov dword [esp + 0xc], eax
test eax, eax
jl 0x10124460
mov edx, dword [esp + 0x8c]
mov eax, dword [esp + 0x88]
mov ecx, dword [esp + 0x38]
push 0
push 0
push 0x11
push 0
push 0
push 0
push 0
push edx
push eax
push ecx
push esi
mov ecx, ebx
call fcn.10122240
mov dword [esp + 0xc], eax
test eax, eax
jl 0x10124460
mov edx, dword [esp + 0x7c]
mov eax, dword [esp + 0x90]
push 0
push 0
push 0x11
push 0
push 0
push 0
push 0
push edx
push eax
mov ecx, edi
or ecx, 0x12f00000
push ecx
push esi
mov ecx, ebx
call fcn.10122240
mov dword [esp + 0xc], eax
test eax, eax
jl 0x10124460
mov edx, dword [esp + 0x88]
mov eax, dword [esp + 0x90]
mov ecx, dword [ebp + 0x10]
push 0
push 0
push 0xb
push 0
push 0
push 0
push edx
push eax
push ecx
or edi, 0x30100000
push edi
push esi
mov ecx, ebx
call fcn.10122240
mov dword [esp + 0xc], eax
test eax, eax
jl 0x10124460
cmp byte [esp + 0x13], 0
jne 0x10122d63
push 0x1008c7a0
jmp 0x10122d51
mov eax, dword [ebx + 8]
push 0xffffffffffffffff
push 0xffffffffffffffff
and esi, 0xfffff
or esi, edx
push esi
lea edx, [esp + 0x40]
push edx
push eax
call fcn.10169e20
mov dword [esp + 0xc], eax
test eax, eax
jl 0x10124469
mov eax, dword [ebp + 0x30]
mov edi, dword [esp + 0x34]
test eax, eax
je 0x10123110
mov dword [eax], edi
mov eax, dword [edi + 8]
xor esi, esi
mov dword [esp + 0x40], eax
cmp eax, esi
jne 0x10123132
cmp dword [edi], esi
jne 0x10123132
mov dword [edi + 0x3c], esi
mov dword [edi], esi
mov dword [edi + 8], esi
mov dword [esp + 0xc], esi
jmp 0x10124470
mov edx, dword [edi + 0x3c]
mov ecx, edx
and ecx, 0xf0000000
cmp ecx, 0xb0000000
jne 0x1012314c
mov edx, 1
jmp 0x1012316b
mov eax, edx
and eax, 0xfff00000
cmp eax, 0x68700000
je 0x10123161
cmp eax, 0x68800000
jne 0x10123165
mov edx, dword [edi]
jmp 0x1012316b
and edx, 0xfffff
mov ecx, dword [edi]
cmp ecx, edx
sbb eax, eax
not eax
and eax, edx
sub ecx, eax
mov dword [esp + 0x18], ecx
cmp eax, esi
je 0x10123192
cmp dword [esp + 0x60], esi
jne 0x10123192
mov dword [esp + 0xc], 0x8007003f
jmp 0x101244b4
cmp ecx, esi
je 0x101231a9
cmp dword [esp + 0x5c], esi
jne 0x101231a9
mov dword [esp + 0xc], 0x8007003f
jmp 0x101244b4
mov edx, dword [esp + 0x60]
lea esi, [eax*4]
mov eax, dword [edi + 4]
push esi
push edx
push eax
call sub.msvcrt.dll_memcpy
mov ecx, dword [esp + 0x24]
mov eax, dword [esp + 0x68]
lea edx, [ecx*4]
mov ecx, dword [edi + 4]
add esp, 0xc
push edx
push eax
add ecx, esi
push ecx
call sub.msvcrt.dll_memcpy
mov ecx, dword [edi + 0x3c]
mov eax, dword [edi]
and ecx, 0xfffff
xor edx, edx
div ecx
add esp, 0xc
mov dword [esp + 0x48], ecx
mov dword [esp + 0x18], 0
mov dword [esp + 0x20], eax
test eax, eax
jbe 0x10123525
mov edx, ecx
mov dword [esp + 0x14], 0
mov ecx, dword [esp + 0x14]
lea eax, [edx*4]
mov dword [esp + 0x68], eax
cmp dword [esp + 0x48], 0
mov byte [esp + 0x13], 1
mov dword [esp + 0x54], 0
jbe 0x1012330f
mov dword [esp + 0x3c], ecx
lea ecx, [ecx]
mov ecx, dword [edi + 4]
mov edx, dword [esp + 0x3c]
mov eax, dword [edi + 0x3c]
mov esi, dword [edx + ecx]
call fcn.10171510
test al, al
je 0x101232a2
push 1
lea eax, [esp + 0x68]
push eax
push 0
push 0
push ebx
mov dword [esp + 0x78], esi
call fcn.101091d0
mov dword [esp + 0xc], eax
test eax, eax
jl 0x10124469
mov edx, dword [esp + 0x64]
mov eax, dword [edx + 0x50]
mov eax, dword [eax + 8]
mov edi, dword [esp + 0x34]
mov ebx, dword [esp + 0x1c]
and eax, 0x10
xor ecx, ecx
or eax, ecx
je 0x101232a2
mov ecx, edi
mov eax, dword [ecx + 4]
mov ecx, dword [esp + 0x3c]
mov dword [ecx + eax], edx
mov esi, dword [esp + 0x64]
inc dword [esi + 0x20]
cmp byte [esp + 0x13], 0
je 0x101232e3
mov ecx, dword [esi + 0x50]
mov eax, dword [ecx + 8]
and eax, 0x100
xor edx, edx
or eax, edx
jne 0x101232c8
mov edx, dword [ebx + 8]
cmp ecx, dword [edx + 0x8040]
jne 0x101232e3
mov eax, dword [esi + 0x40]
and eax, 0x800000
xor ecx, ecx
or eax, ecx
je 0x101232e3
mov byte [esp + 0x13], 1
cmp byte [ebx + 0xfc], cl
je 0x101232e8
mov byte [esp + 0x13], 0
mov eax, dword [esp + 0x54]
add dword [esp + 0x3c], 4
inc eax
mov dword [esp + 0x54], eax
cmp eax, dword [esp + 0x48]
jb 0x10123240
cmp byte [esp + 0x13], 0
je 0x10123502
mov ecx, dword [esp + 0x14]
cmp dword [esp + 0x48], 0
mov dword [esp + 0x98], 0
jbe 0x10123502
mov dword [esp + 0x54], ecx
lea esp, [esp]
mov eax, dword [edi + 4]
mov ecx, dword [esp + 0x54]
mov ebx, dword [ecx + eax]
mov edx, dword [esp + 0x1c]
mov edx, dword [edx + 8]
mov eax, dword [ebx + 0x50]
mov dword [esp + 0xc], ebx
mov dword [esp + 0xc0], edx
cmp eax, dword [edx + 0x8040]
jne 0x101234e4
mov eax, dword [ebx + 0x40]
and eax, 0x800000
xor ecx, ecx
or eax, ecx
jne 0x10123377
mov edi, dword [esp + 0x58]
mov esi, 0x80004005
jmp 0x10123474
mov eax, dword [0x101e316c]
mov edi, dword [edx + 0x8024]
test eax, eax
jge 0x1012338a
xor eax, eax
jmp 0x10123391
push eax
call dword [sym.imp.KERNEL32.dll_TlsGetValue]
cmp dword [eax + 0xc], 0
je 0x101233b8
mov ecx, dword [eax + 0xc]
test ecx, ecx
jne 0x101233a2
mov esi, ecx
jmp 0x101233c9
mov edx, dword [ecx]
mov dword [eax + 0xc], edx
test edx, edx
jne 0x101233ae
mov dword [eax + 0x10], edx
mov dword [ecx], 0xfefefefe
mov esi, ecx
jmp 0x101233c9
mov ecx, dword [eax + 8]
push 0x10
push pe_nt_image_headers32
call fcn.101d8457
mov esi, eax
xor eax, eax
cmp esi, eax
je 0x10123430
push eax
push eax
or ecx, 0xffffffff
mov dword [esi], eax
mov dword [esi + 4], eax
mov dword [esi + 0x94], eax
mov dword [esi + 0x98], eax
mov dword [esi + 0x24], eax
push edi
mov eax, esi
mov dword [esi + 0x50], ecx
mov dword [esi + 0x48], ecx
call fcn.10165570
mov dword [esp + 0x3c], eax
test eax, eax
jl 0x10123437
mov edi, dword [esp + 0xc0]
push 0
mov ebx, esi
call fcn.10169830
mov dword [esp + 0x3c], eax
test eax, eax
jl 0x10123437
mov ebx, dword [esp + 0xc]
mov edi, esi
mov dword [esp + 0x3c], 0
mov esi, dword [esp + 0x3c]
mov dword [esp + 0x58], edi
xor eax, eax
jmp 0x10123451
mov esi, 0x8007000e
jmp 0x1012344d
mov edi, esi
call fcn.101654a0
call fcn.10168d60
mov ebx, dword [esp + 0xc]
mov esi, dword [esp + 0x3c]
xor eax, eax
mov edi, dword [esp + 0x58]
cmp esi, eax
jl 0x10123474
mov ecx, dword [ebx + 0x4c]
mov dword [edi + 0x4c], ecx
mov ecx, ebx
mov eax, edi
mov dword [edi + 0x74], edi
call fcn.10166070
mov edx, dword [edi + 0x44]
or dword [edi + 0x40], 0x800010
mov dword [edi + 0x44], edx
mov dword [esp + 0xc], esi
test esi, esi
jl 0x10124469
mov eax, dword [ebx + 0x8c]
mov dword [edi + 0x8c], eax
mov ecx, dword [ebx + 0x90]
mov dword [edi + 0x90], ecx
mov edx, dword [ebx + 0xa4]
mov dword [edi + 0xa4], edx
mov eax, dword [ebx + 0xa8]
mov dword [edi + 0xa8], eax
mov ecx, dword [ebx + 0xac]
mov dword [edi + 0xac], ecx
mov edx, dword [ebx + 0xb4]
mov dword [edi + 0xb4], edx
mov eax, dword [ebx + 0x28]
mov edx, dword [esp + 0x34]
mov dword [edi + 0x28], eax
mov ecx, dword [ebx + 0x70]
mov dword [edi + 0x70], ecx
mov eax, dword [edx + 4]
mov ecx, dword [esp + 0x54]
mov dword [ecx + eax], edi
mov edi, edx
mov eax, dword [esp + 0x98]
add dword [esp + 0x54], 4
inc eax
mov dword [esp + 0x98], eax
cmp eax, dword [esp + 0x48]
jb 0x10123330
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x14]
add ecx, dword [esp + 0x68]
mov ebx, dword [esp + 0x1c]
inc eax
mov dword [esp + 0x18], eax
mov dword [esp + 0x14], ecx
cmp eax, dword [esp + 0x20]
jb 0x10123221
mov esi, dword [ebx + 8]
test byte [esi + 0x7fd3], 8
je 0x1012358b
cmp dword [edi], 0
jbe 0x1012358b
mov eax, dword [edi + 0x3c]
mov ecx, eax
shr ecx, 0x1c
cmp ecx, 6
je 0x10123548
cmp ecx, 0xa
jne 0x1012358b
call fcn.10170980
test al, al
jne 0x1012358b
mov edx, dword [edi + 4]
mov edx, dword [edx]
mov eax, dword [edx + 0x50]
mov eax, dword [eax + 8]
and eax, 0x800000
xor ecx, ecx
or eax, ecx
je 0x1012358b
lea eax, [esp + 0xc0]
push eax
push esi
call fcn.101641c0
mov dword [esp + 0xc], eax
test eax, eax
jl 0x10124469
mov edi, dword [esp + 0x34]
mov ebx, dword [esp + 0x1c]
jmp 0x101235ac
mov eax, 5
mov dword [esp + 0xc0], eax
mov dword [esp + 0xc4], eax
mov dword [esp + 0xc8], eax
mov dword [esp + 0xcc], eax
xor eax, eax
mov dword [esp + 0x48], eax
cmp dword [esp + 0x40], eax
jbe 0x10123bbb
mov esi, dword [esp + 0x20]
mov ecx, dword [ebp + 0x10]
mov dword [esp + 0x3c], 0xffffffff
test ecx, ecx
je 0x101235e3
mov ecx, dword [ecx + eax*4]
cmp ecx, 0xffffffff
je 0x101235e3
mov dword [esp + 0x3c], ecx
test ecx, ecx
je 0x10123b00
push ebx
call fcn.101249f0
mov ecx, dword [ebx + 8]
mov dword [esp + 0x20], eax
mov eax, dword [0x101e316c]
mov dword [esp + 0x68], ecx
test eax, eax
jge 0x10123601
xor eax, eax
jmp 0x10123608
push eax
call dword [sym.imp.KERNEL32.dll_TlsGetValue]
cmp dword [eax + 0xc], 0
je 0x1012362f
mov ecx, dword [eax + 0xc]
test ecx, ecx
jne 0x10123619
mov ebx, ecx
jmp 0x10123640
mov edx, dword [ecx]
mov dword [eax + 0xc], edx
test edx, edx
jne 0x10123625
mov dword [eax + 0x10], edx
mov dword [ecx], 0xfefefefe
mov ebx, ecx
jmp 0x10123640
mov ecx, dword [eax + 8]
push 0x10
push pe_nt_image_headers32
call fcn.101d8457
mov ebx, eax
xor edi, edi
cmp ebx, edi
je 0x1012369a
mov edx, dword [esp + 0x20]
or eax, 0xffffffff
push edi
push edi
mov dword [ebx + 0x50], eax
mov dword [ebx + 0x48], eax
push edx
mov eax, ebx
mov dword [ebx], edi
mov dword [ebx + 4], edi
mov dword [ebx + 0x94], edi
mov dword [ebx + 0x98], edi
mov dword [ebx + 0x24], edi
call fcn.10165570
cmp eax, edi
mov dword [esp + 0x14], eax
jl 0x101236a4
push edi
mov edi, dword [esp + 0x6c]
call fcn.10169830
mov dword [esp + 0x14], eax
test eax, eax
jl 0x101236a4
mov dword [esp + 0x14], 0
mov esi, ebx
jmp 0x101237dd
mov eax, 0x8007000e
jmp 0x101237e3
mov ecx, dword [ebx + 0x50]
test ecx, ecx
je 0x101236d6
cmp ecx, 0xffffffff
je 0x101236d6
mov eax, dword [ebx + 4]
test eax, eax
je 0x101236bd
mov edx, dword [ebx]
mov dword [eax], edx
jmp 0x101236c2
mov eax, dword [ebx]
mov dword [ecx + 0x24], eax
mov eax, dword [ebx]
test eax, eax
je 0x101236d0
mov ecx, dword [ebx + 4]
mov dword [eax + 4], ecx
jmp 0x101236d6
mov edx, dword [ebx + 4]
mov dword [ecx + 0x28], edx
mov edi, dword [ebx + 0x94]
test edi, edi
je 0x10123735
cmp byte [edi + 0xc], 0
mov dword [edi + 8], 0
je 0x1012371f
mov ecx, dword [edi]
mov dword [esp + 0x20], ecx
test ecx, ecx
je 0x1012371b
mov eax, dword [0x101e316c]
test eax, eax
jge 0x10123704
xor eax, eax
jmp 0x1012370f
push eax
call dword [sym.imp.KERNEL32.dll_TlsGetValue]
mov ecx, dword [esp + 0x20]
mov eax, dword [eax]
push ecx
push 0
push eax
call dword [sym.imp.KERNEL32.dll_HeapFree]
mov byte [edi + 0xc], 0
push edi
mov dword [edi], 0
mov dword [edi + 4], 0
call sub.msvcrt.dll_void___cdecl_operator_delete_void__
add esp, 4
mov edi, dword [ebx + 0x98]
xor eax, eax
mov dword [ebx + 0x94], eax
cmp edi, eax
je 0x10123796
mov dword [edi + 8], eax
cmp byte [edi + 0xc], al
je 0x1012377e
mov ecx, dword [edi]
mov dword [esp + 0x20], ecx
cmp ecx, eax
je 0x1012377a
mov ecx, dword [0x101e316c]
cmp ecx, eax
jl 0x1012376a
push ecx
call dword [sym.imp.KERNEL32.dll_TlsGetValue]
mov ecx, dword [esp + 0x20]
mov edx, dword [eax]
push ecx
push 0
push edx
call dword [sym.imp.KERNEL32.dll_HeapFree]
mov byte [edi + 0xc], 0
push edi
mov dword [edi], 0
mov dword [edi + 4], 0
call sub.msvcrt.dll_void___cdecl_operator_delete_void__
add esp, 4
xor eax, eax
mov dword [ebx + 0x98], eax
mov ecx, dword [0x101e316c]
cmp ecx, eax
jge 0x101237aa
xor edi, edi
jmp 0x101237b3
push ecx
call dword [sym.imp.KERNEL32.dll_TlsGetValue]
mov edi, eax
push pe_nt_image_headers32
push 0xfe
push ebx
call sub.msvcrt.dll_memset
mov dword [ebx], 0
mov eax, dword [edi + 0x10]
add esp, 0xc
test eax, eax
je 0x101237d7
mov dword [eax], ebx
jmp 0x101237da
mov dword [edi + 0xc], ebx
mov dword [edi + 0x10], ebx
mov eax, dword [esp + 0x14]
xor edi, edi
cmp eax, edi
mov dword [esp + 0xc], eax
jl 0x10124469
mov ecx, dword [ebp + 0x1c]
mov edx, dword [ebp + 0x20]
mov eax, dword [esp + 0x48]
mov edi, dword [esp + 0x34]
mov dword [esi + 0x40], ecx
mov dword [esi + 0x44], edx
mov edx, dword [esp + 0x50]
lea ecx, [esp + 0xc0]
push ecx
mov ecx, dword [esp + 0x48]
push edx
mov edx, dword [esp + 0x24]
push ecx
mov dword [esi + 0x64], eax
push eax
mov eax, dword [ebp + 0x28]
lea ecx, [ebp + 0x24]
mov dword [esi + 0x88], edi
call fcn.10124560
mov ebx, dword [esp + 0x1c]
mov dword [esi + 0x4c], eax
mov edx, dword [ebx + 0xb8]
mov dword [esi + 0x68], edx
mov al, byte [ebx + 0xbc]
mov byte [esi + 0x6c], al
mov eax, dword [ebp + 0x24]
test eax, eax
je 0x10123864
mov ecx, dword [ebx + 8]
push eax
push ecx
call fcn.10167590
mov dword [esp + 0xc], eax
test eax, eax
jl 0x10124469
mov edx, dword [ebx + 8]
test byte [edx + 0x7fd4], 0x20
je 0x101239c2
cmp byte [esp + 0x4f], 0
jne 0x101239c2
mov eax, dword [edi + 0x3c]
and eax, 0xfff00000
cmp eax, 0x10000000
je 0x10123899
cmp eax, 0x11f00000
jne 0x1012391c
mov eax, dword [edi + 4]
mov ecx, dword [esp + 0x48]
mov ecx, dword [eax + ecx*4]
mov eax, dword [edx + 0x8020]
cmp dword [ecx + 0x50], eax
jne 0x1012391c
mov ecx, dword [esi + 0x50]
cmp ecx, eax
je 0x10123911
test ecx, ecx
je 0x101238e8
cmp ecx, 0xffffffff
je 0x101238e8
mov edx, dword [esi + 4]
test edx, edx
je 0x101238cf
mov ebx, dword [esi]
mov dword [edx], ebx
mov ebx, dword [esp + 0x1c]
jmp 0x101238d4
mov edx, dword [esi]
mov dword [ecx + 0x24], edx
mov edx, dword [esi]
test edx, edx
je 0x101238e2
mov ecx, dword [esi + 4]
mov dword [edx + 4], ecx
jmp 0x101238e8
mov edx, dword [esi + 4]
mov dword [ecx + 0x28], edx
test eax, eax
je 0x1012390e
cmp eax, 0xffffffff
je 0x1012390e
mov ecx, dword [eax + 0x28]
mov dword [esi + 4], ecx
mov ecx, dword [eax + 0x28]
test ecx, ecx
je 0x10123902
mov dword [ecx], esi
jmp 0x10123905
mov dword [eax + 0x24], esi
mov dword [esi], 0
mov dword [eax + 0x28], esi
mov dword [esi + 0x50], eax
mov dword [esi + 0x68], 0xffffffff
mov byte [esi + 0x6c], 1
mov edx, dword [edi + 0x3c]
and edx, 0xfff00000
cmp edx, 0x30100000
jne 0x101239c2
mov ebx, dword [esp + 0x48]
mov edx, dword [esp + 0x40]
mov eax, dword [edi + 4]
lea ecx, [ebx + edx]
mov ecx, dword [eax + ecx*4]
lea edx, [ebx + edx*2]
mov edx, dword [eax + edx*4]
mov ebx, dword [esp + 0x1c]
mov eax, dword [ebx + 8]
mov eax, dword [eax + 0x8020]
cmp dword [ecx + 0x50], eax
jne 0x101239c2
cmp dword [edx + 0x50], eax
jne 0x101239c2
mov ecx, dword [esi + 0x50]
cmp ecx, eax
je 0x101239c2
test ecx, ecx
je 0x10123999
cmp ecx, 0xffffffff
je 0x10123999
mov edx, dword [esi + 4]
test edx, edx
je 0x10123980
mov ebx, dword [esi]
mov dword [edx], ebx
mov ebx, dword [esp + 0x1c]
jmp 0x10123985
mov edx, dword [esi]
mov dword [ecx + 0x24], edx
mov edx, dword [esi]
test edx, edx
je 0x10123993
mov ecx, dword [esi + 4]
mov dword [edx + 4], ecx
jmp 0x10123999
mov edx, dword [esi + 4]
mov dword [ecx + 0x28], edx
test eax, eax
je 0x101239bf
cmp eax, 0xffffffff
je 0x101239bf
mov ecx, dword [eax + 0x28]
mov dword [esi + 4], ecx
mov ecx, dword [eax + 0x28]
test ecx, ecx
je 0x101239b3
mov dword [ecx], esi
jmp 0x101239b6
mov dword [eax + 0x24], esi
mov dword [esi], 0
mov dword [eax + 0x28], esi
mov dword [esi + 0x50], eax
mov eax, dword [edi + 0xc]
mov ecx, dword [esp + 0x48]
mov edx, dword [esp + 0x3c]
mov dword [eax + ecx*4], esi
mov eax, dword [ebp + 0x10]
test eax, eax
je 0x101239da
mov dword [eax + ecx*4], esi
cmp edx, 0xffffffff
je 0x10123a0e
mov eax, dword [edx + 0x50]
mov eax, dword [eax + 8]
and eax, 0x8000000
xor ecx, ecx
or eax, ecx
jne 0x101239f6
mov ecx, dword [edx + 0x70]
mov dword [esi + 0x70], ecx
mov eax, dword [edx + 0x8c]
mov dword [esi + 0x8c], eax
mov ecx, dword [edx + 0x90]
mov dword [esi + 0x90], ecx
mov edx, dword [esi + 0x50]
mov dword [esp + 0x20], edx
mov edx, dword [esi + 0x70]
cmp edx, 0xffffffff
je 0x10123ae0
mov eax, dword [ebx + 4]
mov eax, dword [eax + 0x14]
cmp edx, eax
jb 0x10123a36
add eax, 0x10
cmp edx, eax
jb 0x10123ae0
cmp byte [ebx + 0xf1], 0
jne 0x10123ae0
mov ecx, dword [edi + 0xc]
mov eax, dword [esp + 0x48]
mov eax, dword [ecx + eax*4]
mov ecx, dword [ebx + 0x1c]
mov dword [ecx + edx*4], eax
mov eax, dword [ebx + 0x1a8]
test eax, eax
je 0x10123a9f
mov ebx, dword [eax + 4]
mov ecx, edx
and ecx, 0x1f
mov edi, 1
shl edi, cl
mov ecx, edx
shr ecx, 5
lea ecx, [ebx + ecx*4]
test dword [ecx], edi
jne 0x10123a9b
inc dword [eax + 0xc]
or dword [ecx], edi
mov ecx, dword [eax + 0x10]
cmp ecx, 0xffffffff
je 0x10123a89
cmp edx, ecx
jae 0x10123a8c
mov dword [eax + 0x10], edx
mov ecx, dword [eax + 0x14]
cmp ecx, 0xffffffff
je 0x10123a98
cmp edx, ecx
jbe 0x10123a9b
mov dword [eax + 0x14], edx
mov ebx, dword [esp + 0x1c]
mov eax, dword [esp + 0x20]
mov edx, dword [eax + 0xc]
mov ecx, dword [eax + 8]
mov eax, ecx
mov dword [esp + 0x24], edx
and eax, 0x8200000
xor edx, edx
or eax, edx
jne 0x10123ae0
cmp dword [esi + 0x8c], eax
jne 0x10123ae0
and ecx, 0x200000
or ecx, eax
jne 0x10123ae0
mov eax, dword [esi + 0x48]
push eax
push 0x1008c7e4
push ecx
mov eax, ebx
call fcn.1010ad00
add esp, 0xc
mov eax, dword [esp + 0x48]
mov edi, dword [esp + 0x34]
inc eax
mov dword [esp + 0x48], eax
cmp eax, dword [esp + 0x40]
jae 0x10123bbf
mov ebx, dword [esp + 0x1c]
jmp 0x101235c0
push 0x1008c4cc
push 0
xor edx, edx
mov eax, ebx
call fcn.1010ad00
mov ecx, dword [esp + 0xc0]
mov edx, dword [esp + 0xbc]
mov eax, dword [esp + 0xc4]
add esp, 8
cmp dword [esp + 0xb0], 0
lea ecx, [ecx + ecx*2]
lea edi, [edx + ecx*4 + 0x8140]
je 0x10123b5a
test eax, eax
ja 0x10123b45
mov eax, 1
mov ebx, dword [edi]
cmp eax, dword [ebx + 8]
jae 0x10123b51
sub dword [ebx + 8], eax
jmp 0x10123b5a
mov eax, dword [ebx]
mov dword [edi], eax
call fcn.100daed0
cmp dword [esp + 0xa0], 0
mov ecx, dword [esp + 0xa8]
mov edx, dword [esp + 0xa4]
mov eax, dword [esp + 0xac]
lea ecx, [ecx + ecx*2]
lea edi, [edx + ecx*4 + 0x8140]
je 0x10123bad
test eax, eax
ja 0x10123b8c
mov eax, 1
mov ebx, dword [edi]
cmp eax, dword [ebx + 8]
jae 0x10123ba4
sub dword [ebx + 8], eax
mov eax, 0x80004005
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x2c
mov eax, dword [ebx]
mov dword [edi], eax
call fcn.100daed0
mov eax, 0x80004005
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x2c
mov ebx, dword [esp + 0x1c]
mov ecx, dword [ebp + 8]
mov dword [edi + 0x38], ecx
mov edx, dword [ebx + 0xc8]
mov dword [edi + 0x34], edx
mov eax, dword [edi + 0xc]
push 0
push eax
mov eax, ebx
call fcn.10109b70
mov dword [esp + 0xc], eax
test eax, eax
jl 0x10124469
test byte [ebx + 0x14], 4
jne 0x10123f0f
mov ebx, dword [esp + 0x34]
mov eax, dword [ebx + 0x3c]
call fcn.10171320
test al, al
jne 0x10123f13
xor edi, edi
cmp dword [esp + 0x40], edi
jbe 0x10123c4f
lea ecx, [ecx]
mov ecx, dword [ebx + 0xc]
mov edx, dword [ecx + edi*4]
mov eax, dword [edx + 0x44]
mov ecx, dword [edx + 0x40]
mov dword [esp + 0x24], eax
mov eax, ecx
and eax, 2
xor esi, esi
or eax, esi
jne 0x10123c4f
and ecx, 0x600000
or ecx, eax
jne 0x10123c4f
lea ecx, [esp + 0x68]
push ecx
mov ecx, dword [esp + 0x20]
push edx
call fcn.10109730
test eax, eax
jl 0x10123c4f
inc edi
cmp edi, dword [esp + 0x40]
jb 0x10123c10
cmp edi, dword [esp + 0x40]
jne 0x10123f13
mov eax, dword [esp + 0x40]
mov edx, eax
and edx, 0xfffff
or edx, 0x10000000
mov dword [ebx + 0x3c], edx
mov dword [ebx], eax
mov dword [ebx + 8], eax
mov dword [esp + 0x50], 0
test eax, eax
jbe 0x10123f13
jmp 0x10123c89
mov ebx, dword [esp + 0x34]
mov eax, dword [esp + 0x50]
mov ecx, dword [ebx + 0xc]
mov ebx, dword [ebx + 4]
mov edx, dword [esp + 0x1c]
mov edx, dword [edx + 8]
add eax, eax
add eax, eax
mov edi, dword [eax + ecx]
add ebx, eax
mov eax, dword [edi + 0x40]
and eax, 0x800000
xor ecx, ecx
or eax, ecx
mov dword [esp + 0x18], edi
mov dword [esp + 0x44], ebx
mov dword [esp + 0x68], edx
jne 0x10123cc7
mov esi, 0x80004005
jmp 0x10123ee6
mov eax, dword [edx + 0x8024]
mov dword [esp + 0x20], eax
mov eax, dword [0x101e316c]
test eax, eax
jge 0x10123cde
xor eax, eax
jmp 0x10123ce5
push eax
call dword [sym.imp.KERNEL32.dll_TlsGetValue]
cmp dword [eax + 0xc], 0
je 0x10123d0c
mov ecx, dword [eax + 0xc]
test ecx, ecx
jne 0x10123cf6
mov esi, ecx
jmp 0x10123d1d
mov edx, dword [ecx]
mov dword [eax + 0xc], edx
test edx, edx
jne 0x10123d02
mov dword [eax + 0x10], edx
mov dword [ecx], 0xfefefefe
mov esi, ecx
jmp 0x10123d1d
mov ecx, dword [eax + 8]
push 0x10
push pe_nt_image_headers32
call fcn.101d8457
mov esi, eax
xor eax, eax
cmp esi, eax
je 0x10123d7e
or ecx, 0xffffffff
push eax
mov dword [esi + 0x50], ecx
mov dword [esi + 0x48], ecx
mov ecx, dword [esp + 0x24]
push eax
mov dword [esi], eax
mov dword [esi + 4], eax
mov dword [esi + 0x94], eax
mov dword [esi + 0x98], eax
mov dword [esi + 0x24], eax
push ecx
mov eax, esi
call fcn.10165570
mov dword [esp + 0x14], eax
test eax, eax
jl 0x10123d88
mov edi, dword [esp + 0x68]
push 0
mov ebx, esi
call fcn.10169830
mov dword [esp + 0x14], eax
test eax, eax
jl 0x10123d88
mov edx, dword [esp + 0x44]
mov dword [esp + 0x14], 0
mov dword [edx], esi
jmp 0x10123eaf
mov esi, 0x8007000e
jmp 0x10123ebd
mov ecx, dword [esi + 0x50]
test ecx, ecx
je 0x10123dba
cmp ecx, 0xffffffff
je 0x10123dba
mov eax, dword [esi + 4]
test eax, eax
je 0x10123da1
mov edx, dword [esi]
mov dword [eax], edx
jmp 0x10123da6
mov eax, dword [esi]
mov dword [ecx + 0x24], eax
mov eax, dword [esi]
test eax, eax
je 0x10123db4
mov ecx, dword [esi + 4]
mov dword [eax + 4], ecx
jmp 0x10123dba
mov edx, dword [esi + 4]
mov dword [ecx + 0x28], edx
mov edi, dword [esi + 0x94]
test edi, edi
je 0x10123e11
cmp byte [edi + 0xc], 0
mov dword [edi + 8], 0
je 0x10123dfb
mov ebx, dword [edi]
test ebx, ebx
je 0x10123df7
mov eax, dword [0x101e316c]
test eax, eax
jge 0x10123de4
xor eax, eax
jmp 0x10123deb
push eax
call dword [sym.imp.KERNEL32.dll_TlsGetValue]
mov eax, dword [eax]
push ebx
push 0
push eax
call dword [sym.imp.KERNEL32.dll_HeapFree]
mov byte [edi + 0xc], 0
push edi
mov dword [edi], 0
mov dword [edi + 4], 0
call sub.msvcrt.dll_void___cdecl_operator_delete_void__
add esp, 4
mov edi, dword [esi + 0x98]
xor eax, eax
mov dword [esi + 0x94], eax
cmp edi, eax
je 0x10123e6b
mov dword [edi + 8], eax
cmp byte [edi + 0xc], al
je 0x10123e55
mov ebx, dword [edi]
test ebx, ebx
je 0x10123e51
mov eax, dword [0x101e316c]
test eax, eax
jge 0x10123e3e
xor eax, eax
jmp 0x10123e45
push eax
call dword [sym.imp.KERNEL32.dll_TlsGetValue]
mov ecx, dword [eax]
push ebx
push 0
push ecx
call dword [sym.imp.KERNEL32.dll_HeapFree]
mov byte [edi + 0xc], 0
push edi
mov dword [edi], 0
mov dword [edi + 4], 0
call sub.msvcrt.dll_void___cdecl_operator_delete_void__
add esp, 4
xor edi, edi
mov dword [esi + 0x98], edi
mov eax, dword [0x101e316c]
cmp eax, edi
jl 0x10123e85
push eax
call dword [sym.imp.KERNEL32.dll_TlsGetValue]
mov edi, eax
push pe_nt_image_headers32
push 0xfe
push esi
call sub.msvcrt.dll_memset
mov dword [esi], 0
mov eax, dword [edi + 0x10]
add esp, 0xc
test eax, eax
je 0x10123ea9
mov dword [eax], esi
jmp 0x10123eac
mov dword [edi + 0xc], esi
mov dword [edi + 0x10], esi
mov esi, dword [esp + 0x14]
mov edi, dword [esp + 0x18]
mov ebx, dword [esp + 0x44]
xor eax, eax
cmp esi, eax
jl 0x10123ee6
mov eax, dword [ebx]
mov edx, dword [edi + 0x4c]
mov dword [eax + 0x4c], edx
mov eax, dword [ebx]
mov dword [eax + 0x74], eax
mov eax, dword [ebx]
mov ecx, edi
call fcn.10166070
mov ebx, dword [ebx]
mov eax, dword [ebx + 0x44]
or dword [ebx + 0x40], 0x800010
mov dword [ebx + 0x44], eax
mov dword [esp + 0xc], esi
test esi, esi
jl 0x10124469
mov eax, dword [esp + 0x50]
or dword [edi + 0x40], 0x10
mov ecx, dword [edi + 0x44]
inc eax
mov dword [edi + 0x44], ecx
mov dword [esp + 0x50], eax
cmp eax, dword [esp + 0x40]
jb 0x10123c85
mov ebx, dword [esp + 0x34]
mov eax, dword [ebx + 0x3c]
mov ecx, eax
and ecx, 0xfff00000
cmp ecx, 0x30000000
ja 0x101240fb
je 0x10123fd9
cmp ecx, 0x10000000
je 0x10123f44
cmp ecx, 0x11f00000
jne 0x1012428b
xor esi, esi
cmp dword [esp + 0x40], esi
jbe 0x1012428b
mov edx, dword [ebx + 0xc]
mov eax, dword [ebx + 4]
mov edi, dword [edx + esi*4]
mov edx, dword [eax + esi*4]
mov eax, dword [edx + 0x50]
mov eax, dword [eax + 8]
and eax, 0x80000000
xor ecx, ecx
or eax, ecx
jne 0x10123f84
mov eax, dword [edx + 0x4c]
mov ecx, dword [edi + 0x4c]
cmp ecx, eax
je 0x10123f81
cmp ecx, 4
jne 0x10123f90
cmp eax, 3
jne 0x10123fae
mov dword [edi + 0x78], edx
inc esi
cmp esi, dword [esp + 0x40]
jb 0x10123f50
jmp 0x1012428b
cmp ecx, 3
jne 0x10123f9c
cmp eax, 4
jne 0x10123fae
jmp 0x10123f81
cmp ecx, 0x20
jne 0x10123fae
test dword [eax*4 + 0x101e0f10], 0x8000
jne 0x10123f81
cmp eax, 0x20
jne 0x10123fc0
test dword [ecx*4 + 0x101e0f10], 0x8000
jne 0x10123f81
mov ecx, dword [esp + 0x1c]
mov eax, dword [ecx + 8]
test byte [eax + 0x7fd3], 8
je 0x10123f81
mov dword [edi + 0x78], 0xffffffff
jmp 0x10123f84
xor edi, edi
cmp dword [esp + 0x40], edi
jbe 0x1012428b
mov eax, dword [ebx + 0x3c]
mov ecx, dword [ebx + 0xc]
mov edx, dword [ecx + edi*4]
mov ebx, dword [ebx + 4]
mov esi, dword [ebx + edi*4]
and eax, 0xfffff
lea ecx, [eax + edi]
mov dword [esp + 0x18], edx
mov edx, dword [ebx + ecx*4]
lea eax, [edi + eax*2]
mov ebx, dword [ebx + eax*4]
mov dword [esp + 0x68], edx
lea edx, [esp + 0x98]
lea ecx, [esp + 0xc0]
call fcn.10165a70
mov dword [esp + 0xc], eax
test eax, eax
jl 0x10124469
fld qword [esp + 0xc0]
fstp dword [esp + 0x20]
fld dword [esp + 0x20]
fldz
fcom st(1)
fnstsw ax
fstp st(1)
test ah, 5
jp 0x10124050
mov ebx, dword [esp + 0x68]
fstp st(0)
jmp 0x1012406a
fld qword [esp + 0x98]
fstp dword [esp + 0x20]
fcomp dword [esp + 0x20]
fnstsw ax
test ah, 0x41
jne 0x101240e7
mov ecx, dword [esp + 0x1c]
mov edx, dword [ecx + 8]
test byte [edx + 0x7fd3], 8
mov esi, dword [esp + 0x18]
je 0x101240c4
mov eax, dword [ebx + 0x4c]
mov ecx, dword [esi + 0x4c]
cmp ecx, eax
je 0x101240c4
cmp ecx, 4
jne 0x10124094
cmp eax, 3
je 0x101240c4
jmp 0x101240b2
cmp ecx, 3
jne 0x101240a0
cmp eax, 4
jne 0x101240b2
jmp 0x101240c4
cmp ecx, 0x20
jne 0x101240b2
test dword [eax*4 + 0x101e0f10], 0x8000
jne 0x101240c4
cmp eax, 0x20
jne 0x101240e7
test dword [ecx*4 + 0x101e0f10], 0x8000
je 0x101240e7
mov ecx, ebx
mov eax, esi
mov dword [esi + 0x78], ebx
call fcn.10166070
mov dword [esp + 0xc], eax
test eax, eax
jl 0x10124469
mov eax, dword [ebx + 0x40]
and eax, 0x1a0010
or dword [esi + 0x40], eax
mov ebx, dword [esp + 0x34]
inc edi
cmp edi, dword [esp + 0x40]
jb 0x10123fe5
jmp 0x1012428b
cmp ecx, 0x30100000
je 0x1012418c
cmp ecx, 0x50000000
jne 0x1012428b
mov ecx, dword [ebx + 0xc]
mov edx, dword [ecx]
and eax, 0xfffff
mov dword [esp + 0x20], edx
mov dword [esp + 0x18], eax
mov dword [esp + 0x44], 0
jbe 0x10124168
mov edx, dword [ebx + 4]
lea esi, [edx + eax*4]
mov eax, dword [edx]
mov eax, dword [eax + 0x40]
mov edi, dword [esi]
and eax, 0x100000
xor ecx, ecx
or eax, ecx
je 0x10124168
mov eax, dword [edi + 0x40]
and eax, 0x100000
or eax, ecx
je 0x10124168
mov eax, dword [esp + 0x44]
inc eax
add edx, 4
add esi, 4
mov dword [esp + 0x44], eax
cmp eax, dword [esp + 0x18]
jb 0x10124135
mov eax, dword [esp + 0x18]
cmp dword [esp + 0x44], eax
jne 0x1012428b
mov eax, dword [esp + 0x20]
mov ecx, dword [eax + 0x44]
or dword [eax + 0x40], 0x100000
mov dword [eax + 0x44], ecx
jmp 0x1012428b
xor esi, esi
cmp dword [esp + 0x40], esi
jbe 0x1012428b
mov edx, dword [ebx + 0xc]
mov ecx, dword [edx + esi*4]
mov eax, dword [ebx + 0x3c]
and eax, 0xfffff
lea edi, [eax + esi]
mov dword [esp + 0x18], ecx
mov ecx, dword [ebx + 4]
mov edx, dword [ecx + esi*4]
mov edi, dword [ecx + edi*4]
lea eax, [esi + eax*2]
mov ecx, dword [ecx + eax*4]
mov eax, dword [edx + 0x40]
mov dword [esp + 0x20], ecx
and eax, 0x800000
xor ecx, ecx
or eax, ecx
je 0x10124280
mov eax, dword [edx + 0xc0]
mov edx, dword [edx + 0xc4]
mov dword [esp + 0x6c], edx
test eax, eax
je 0x101241ec
mov dword [esp + 0x14], edi
jmp 0x101241f4
mov eax, dword [esp + 0x20]
mov dword [esp + 0x14], eax
mov ecx, dword [esp + 0x1c]
mov edx, dword [ecx + 8]
test byte [edx + 0x7fd3], 8
mov edi, dword [esp + 0x18]
je 0x10124252
mov eax, dword [esp + 0x14]
mov eax, dword [eax + 0x4c]
mov ecx, dword [edi + 0x4c]
cmp ecx, eax
je 0x10124252
cmp ecx, 4
jne 0x10124222
cmp eax, 3
je 0x10124252
jmp 0x10124240
cmp ecx, 3
jne 0x1012422e
cmp eax, 4
jne 0x10124240
jmp 0x10124252
cmp ecx, 0x20
jne 0x10124240
test dword [eax*4 + 0x101e0f10], 0x8000
jne 0x10124252
cmp eax, 0x20
jne 0x10124280
test dword [ecx*4 + 0x101e0f10], 0x8000
je 0x10124280
mov ecx, dword [esp + 0x14]
mov eax, edi
mov dword [edi + 0x78], ecx
call fcn.10166070
mov dword [esp + 0xc], eax
test eax, eax
jl 0x10124469
mov ecx, dword [esp + 0x14]
mov edx, dword [ecx + 0x40]
mov ebx, dword [esp + 0x34]
and edx, 0x1a0010
or dword [edi + 0x40], edx
inc esi
cmp esi, dword [esp + 0x40]
jb 0x10124198
cmp byte [ebp + 0x2c], 0
je 0x10124443
cmp dword [esp + 0x38], 0xffffffff
je 0x10124443
mov eax, dword [esp + 0x1c]
mov ecx, dword [eax + 8]
mov eax, dword [esp + 0x40]
xor esi, esi
mov dword [esp + 0x24], ecx
mov dword [esp + 0x2c], esi
cmp eax, 0x3ffffffd
jbe 0x101242c3
mov eax, 0x80070216
jmp 0x1012432a
add eax, eax
add eax, eax
jne 0x101242ce
mov eax, 4
mov dword [esp + 0x2c], eax
mov edi, eax
lea esi, [ecx + 0x8158]
test eax, eax
ja 0x101242e3
mov edi, 1
mov eax, dword [esi]
test eax, eax
je 0x101242f3
mov ecx, dword [eax + 0xc]
sub ecx, dword [eax + 8]
cmp edi, ecx
jbe 0x10124302
mov ecx, edi
call fcn.100daf50
test eax, eax
je 0x10124302
xor eax, eax
jmp 0x10124316
mov ecx, dword [esi]
test ecx, ecx
je 0x10124311
mov edx, dword [ecx + 8]
lea eax, [edx + ecx + 0x10]
jmp 0x10124313
xor eax, eax
add dword [ecx + 8], edi
mov ecx, dword [esp + 0x24]
mov esi, eax
neg eax
sbb eax, eax
and eax, 0x7ff8fff2
add eax, 0x8007000e
mov dword [esp + 0xc], eax
test eax, eax
jge 0x1012436a
mov eax, dword [esp + 0x2c]
lea edi, [ecx + 0x8158]
test esi, esi
je 0x10124469
test eax, eax
ja 0x1012434d
mov eax, 1
mov ebx, dword [edi]
cmp eax, dword [ebx + 8]
jae 0x1012435c
sub dword [ebx + 8], eax
jmp 0x10124469
mov eax, dword [ebx]
mov dword [edi], eax
call fcn.100daed0
jmp 0x10124469
cmp dword [esp + 0x40], 0
jbe 0x1012437c
mov ecx, dword [esp + 0x40]
or eax, 0xffffffff
mov edi, esi
rep stosd dword es:[edi], eax
mov ecx, dword [esp + 0x38]
mov eax, dword [esp + 0x40]
mov edi, dword [ebp + 0x10]
push 0
push 0
push 0x11
push 0
push 0
push 0
xor eax, ecx
push 0
push edi
and eax, 0xfffff
xor eax, ecx
mov ecx, dword [ebp + 8]
push esi
push eax
push ecx
mov ecx, dword [esp + 0x48]
call fcn.10122240
mov dword [esp + 0xc], eax
test eax, eax
jge 0x101243f2
mov edi, dword [esp + 0x24]
mov eax, dword [esp + 0x2c]
add edi, 0x8158
test esi, esi
je 0x10124469
test eax, eax
ja 0x101243d5
mov eax, 1
mov ebx, dword [edi]
cmp eax, dword [ebx + 8]
jae 0x101243e4
sub dword [ebx + 8], eax
jmp 0x10124469
mov edx, dword [ebx]
mov dword [edi], edx
call fcn.100daed0
jmp 0x10124469
mov edx, dword [esp + 0x40]
test edx, edx
jbe 0x1012440d
mov ecx, esi
mov eax, edi
sub ecx, edi
mov edi, dword [ecx + eax]
mov dword [eax], edi
add eax, 4
sub edx, 1
jne 0x10124400
mov edi, dword [esp + 0x24]
mov ecx, dword [esp + 0x2c]
add edi, 0x8158
test esi, esi
je 0x10124443
test ecx, ecx
ja 0x10124428
mov ecx, 1
mov eax, dword [edi]
cmp ecx, dword [eax + 8]
jae 0x10124434
sub dword [eax + 8], ecx
jmp 0x10124443
mov ecx, dword [eax]
mov ebx, eax
mov dword [edi], ecx
call fcn.100daed0
mov ebx, dword [esp + 0x34]
mov edx, dword [ebp + 8]
mov eax, dword [esp + 0x1c]
mov dword [ebx + 0x38], edx
mov ecx, dword [eax + 0xc8]
mov dword [ebx + 0x34], ecx
mov dword [esp + 0xc], 0
jmp 0x10124470
lea esi, [esp + 0x20]
call fcn.100da650
cmp dword [esp + 0xc], 0
jne 0x101244b4
mov edx, dword [esp + 0x1c]
cmp dword [edx + 0x19c], 0
jbe 0x101244b4
mov eax, dword [esp + 0x34]
test eax, eax
je 0x1012448b
mov eax, dword [eax + 0x3c]
mov dword [ebp + 0xc], eax
mov eax, dword [ebp + 0xc]
call fcn.101734f0
test eax, eax
je 0x101244b4
mov ecx, dword [esp + 0x60]
mov edx, dword [ebp + 0xc]
mov eax, dword [esp + 0x5c]
mov edi, dword [esp + 0x1c]
push ecx
mov ecx, dword [ebp + 0x10]
push edx
call fcn.10108290
mov dword [esp + 0xc], eax
cmp dword [esp + 0xb0], 0
mov ecx, dword [esp + 0xb8]
mov edx, dword [esp + 0xb4]
mov eax, dword [esp + 0xbc]
lea ecx, [ecx + ecx*2]
lea edi, [edx + ecx*4 + 0x8140]
je 0x101244fb
test eax, eax
ja 0x101244e6
mov eax, 1
mov ebx, dword [edi]
cmp eax, dword [ebx + 8]
jae 0x101244f2
sub dword [ebx + 8], eax
jmp 0x101244fb
mov eax, dword [ebx]
mov dword [edi], eax
call fcn.100daed0
cmp dword [esp + 0xa0], 0
mov ecx, dword [esp + 0xa8]
mov edx, dword [esp + 0xa4]
mov eax, dword [esp + 0xac]
lea ecx, [ecx + ecx*2]
lea edi, [edx + ecx*4 + 0x8140]
je 0x1012454d
test eax, eax
ja 0x1012452d
mov eax, 1
mov ebx, dword [edi]
cmp eax, dword [ebx + 8]
jae 0x10124544
sub dword [ebx + 8], eax
mov eax, dword [esp + 0xc]
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x2c
mov eax, dword [ebx]
mov dword [edi], eax
call fcn.100daed0
mov eax, dword [esp + 0xc]
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x2c