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

Disassembly:
push 0xffffffffffffffff
push 0x10123140
mov eax, dword fs:[0]
push eax
sub esp, 0x5c
push ebx
push ebp
push esi
push edi
mov eax, dword [0x1014d0cc]
xor eax, esp
push eax
lea eax, [esp + 0x70]
mov dword fs:[0], eax
mov ebp, dword [esp + 0x80]
mov eax, dword [0x101556f0]
mov ecx, dword [0x101556f4]
mov dword [esp + 0x3c], eax
mov dword [esp + 0x40], ecx
lea eax, [esp + 0x80]
mov ecx, ebp
call fcn.100653c0
lea edi, [ebp + 0x238]
lea esi, [esp + 0x34]
mov dword [esp + 0x78], 0
call fcn.10007b70
mov byte [esp + 0x78], 1
mov edx, dword [ebp + 0x138]
cmp byte [edx + 0x1a8], 0
mov edi, dword [esp + 0x34]
je 0x1006fe99
mov edx, dword [ebp + 0x38]
or edx, dword [ebp + 0x3c]
mov eax, dword [ebp + 0xf0]
mov ecx, dword [ebp + 0xa8]
mov dword [esp + 0x18], eax
mov dword [esp + 0x1c], ecx
je 0x1006fd15
cdq
sub dword [ebp + 0x30], eax
sbb dword [ebp + 0x34], edx
mov eax, dword [ebp + 0x20]
or eax, dword [ebp + 0x24]
je 0x1006fd26
mov eax, ecx
cdq
sub dword [ebp + 0x18], eax
sbb dword [ebp + 0x1c], edx
mov dl, byte [ebp + 0x34e]
and dl, 1
mov eax, dword [ebp + 0x138]
je 0x1006fd44
lea ecx, [eax + 0x920]
add eax, 0x908
jmp 0x1006fd4f
lea ecx, [eax + 0x8f0]
add eax, 0x8d8
test edi, edi
mov ebx, dword [ebp + 0x20]
mov dword [esp + 0x24], ecx
mov ecx, dword [ebp + 0x38]
mov dword [esp + 0x2c], eax
je 0x1006fe67
test dl, dl
jne 0x1006fd8f
mov edx, dword [edi + 0x50]
or edx, dword [edi + 0x54]
je 0x1006fd7c
mov eax, dword [esp + 0x18]
cdq
sub dword [edi + 0x48], eax
sbb dword [edi + 0x4c], edx
mov eax, dword [edi + 0x38]
or eax, dword [edi + 0x3c]
je 0x1006fd8f
mov eax, dword [esp + 0x1c]
cdq
sub dword [edi + 0x30], eax
sbb dword [edi + 0x34], edx
test ecx, ecx
jle 0x1006fdfb
cmp dword [esp + 0x18], ecx
jl 0x1006fdfb
mov esi, dword [edi + 0x2e0]
add esi, 0x368
call fcn.10074370
test al, al
je 0x1006fdfb
lea ecx, [esp + 0x44]
push ecx
mov ecx, edi
call fcn.100cc330
mov ecx, eax
push 3
lea eax, [esp + 0x50]
call fcn.10065480
mov byte [esp + 0x78], 3
mov ecx, dword [edi + 0x2e0]
push eax
add ecx, 0x368
call fcn.1000dc40
lea edx, [esp + 0x4c]
push edx
mov byte [esp + 0x7c], 2
call fcn.1000c300
lea eax, [esp + 0x44]
mov byte [esp + 0x78], 1
call fcn.100d2230
test ebx, ebx
jle 0x1006fe67
cmp dword [esp + 0x1c], ebx
jl 0x1006fe67
mov esi, dword [edi + 0x2e0]
add esi, 0x368
call fcn.10074370
test al, al
je 0x1006fe67
lea eax, [esp + 0x44]
push eax
mov ecx, edi
call fcn.100cc330
mov ecx, eax
push 2
lea eax, [esp + 0x50]
call fcn.10065480
mov byte [esp + 0x78], 5
mov ecx, dword [edi + 0x2e0]
push eax
add ecx, 0x368
call fcn.1000dc40
lea ecx, [esp + 0x4c]
push ecx
mov byte [esp + 0x7c], 4
call fcn.1000c300
lea eax, [esp + 0x44]
mov byte [esp + 0x78], 1
call fcn.100d2230
mov ecx, dword [esp + 0x2c]
mov edx, dword [ecx + 0x10]
or edx, dword [ecx + 0x14]
je 0x1006fe7e
mov eax, dword [esp + 0x18]
cdq
sub dword [ecx + 8], eax
sbb dword [ecx + 0xc], edx
mov eax, dword [esp + 0x24]
mov ecx, dword [eax + 0x10]
or ecx, dword [eax + 0x14]
je 0x1006fe99
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x24]
cdq
sub dword [ecx + 8], eax
sbb dword [ecx + 0xc], edx
test edi, edi
je 0x100707e1
test byte [ebp + 0x34e], 8
jne 0x100707e1
test byte [ebp + 0x34f], 0x10
je 0x1006ff36
test byte [ebp + 0x34d], 0x20
je 0x1006ff36
lea eax, [ebp + 0x280]
call fcn.10022310
test al, al
je 0x1006ff36
lea eax, [ebp + 0x270]
call fcn.10022310
test al, al
je 0x1006ff36
mov edx, dword [ebp + 0x174]
mov eax, dword [ebp + 0x170]
mov ebx, dword [esp + 0x40]
mov esi, dword [esp + 0x3c]
push edx
push eax
push ebx
push esi
lea eax, [esp + 0x54]
call fcn.10001840
mov ecx, dword [eax + 4]
mov edx, dword [eax]
push ecx
push edx
call fcn.10001860
add esp, 0x18
cmp eax, 5
jl 0x1006ff36
push ebp
push edi
mov dword [ebp + 0x170], esi
mov dword [ebp + 0x174], ebx
call fcn.100801a0
add esp, 8
test byte [ebp + 0x34e], 8
jne 0x100707ba
mov eax, dword [ebp]
mov edx, dword [eax + 0x6c]
mov ecx, ebp
call edx
mov eax, dword [ebp + 0x154]
mov esi, dword [eax]
lea ebx, [ebp + 0x150]
mov edi, eax
cmp ebx, ebx
je 0x1006ff5a
call dword [sym.imp.MSVCR80.dll__invalid_parameter_noinfo]
cmp esi, edi
je 0x1006ff82
cmp esi, dword [ebx + 4]
jne 0x1006ff69
call dword [sym.imp.MSVCR80.dll__invalid_parameter_noinfo]
mov ecx, dword [esi + 8]
mov eax, dword [ecx]
mov edx, dword [eax + 0x60]
call edx
cmp esi, dword [ebx + 4]
jne 0x1006ff7e
call dword [sym.imp.MSVCR80.dll__invalid_parameter_noinfo]
mov esi, dword [esi]
jmp 0x1006ff50
mov eax, dword [ebp]
mov edx, dword [eax + 4]
mov ecx, ebp
call edx
test al, al
je 0x1006ff98
or ebx, 0xffffffff
jmp 0x1007086e
mov ecx, dword [ebp + 0x19c]
mov edx, dword [ebp + 0x198]
mov ebx, dword [esp + 0x40]
mov edi, dword [esp + 0x3c]
push ecx
push edx
push ebx
push edi
lea eax, [esp + 0x54]
call fcn.10001840
mov ecx, dword [ebp + 0x190]
mov esi, eax
mov eax, dword [ebp + 0x194]
push eax
push ecx
push ebx
push edi
lea eax, [esp + 0x44]
call fcn.10001840
mov edx, dword [esi + 4]
add esp, 0x20
cmp edx, dword [eax + 4]
jg 0x1006ffe9
jl 0x1006ffe7
mov ecx, dword [esi]
cmp ecx, dword [eax]
jae 0x1006ffe9
mov eax, esi
movzx ebx, byte [ebp + 9]
mov edx, dword [eax]
mov edi, dword [eax + 4]
shr ebx, 1
and bl, 1
mov dword [esp + 0x2c], edx
je 0x100700bb
mov eax, dword [ebp + 0x2f4]
cdq
push edx
push eax
lea esi, [esp + 0x4c]
call fcn.100287e0
mov ecx, dword [eax]
add esp, 8
cmp edi, dword [eax + 4]
jl 0x10070051
jg 0x10070025
cmp dword [esp + 0x2c], ecx
jbe 0x10070051
test byte [ebp + 0x34e], 0x10
jne 0x100700bb
push 0x32
lea esi, [esp + 0x48]
call fcn.10034120
mov eax, dword [ebp]
mov edx, dword [eax + 0x1c]
push 0
mov ecx, esi
push ecx
mov ecx, ebp
call edx
jmp 0x100707ba
test byte [ebp + 0x34e], 0x10
jne 0x100700bb
mov eax, dword [ebp]
mov edx, dword [eax + 0x20]
mov ecx, ebp
call edx
test al, al
je 0x100700bb
mov eax, dword [ebp + 0x138]
add eax, 0x48
mov eax, dword [eax + 0xb8]
cdq
push edx
push eax
lea esi, [esp + 0x4c]
call fcn.100287e0
mov ecx, dword [eax + 4]
mov edx, dword [eax]
mov eax, dword [esp + 0x34]
push ecx
push edx
push edi
push eax
call fcn.100287c0
add esp, 0x18
test al, al
je 0x100700bb
push 0x33
lea esi, [esp + 0x48]
call fcn.10034120
mov edx, dword [ebp]
mov edx, dword [edx + 0x1c]
push 0
mov eax, esi
push eax
mov ecx, ebp
call edx
jmp 0x100707ba
mov edx, dword [ebp + 0x184]
cmp edx, dword [ebp + 0x17c]
lea ecx, [ebp + 0x180]
lea eax, [ebp + 0x178]
ja 0x100700dd
jb 0x100700df
mov edx, dword [ecx]
cmp edx, dword [eax]
jb 0x100700df
mov eax, ecx
mov ecx, dword [eax + 4]
mov edx, dword [eax]
mov eax, dword [esp + 0x40]
mov edi, dword [esp + 0x3c]
push ecx
push edx
push eax
push edi
lea eax, [esp + 0x54]
call fcn.10001840
mov ecx, dword [eax]
mov edx, dword [eax + 4]
add esp, 0x10
test bl, bl
mov dword [esp + 0x2c], ecx
mov dword [esp + 0x30], edx
je 0x1007017a
test byte [ebp + 0x34e], 0x10
jne 0x1007017a
lea ecx, [ebp + 0x260]
call fcn.10073860
test al, al
je 0x1007017a
cmp dword [ebp + 0x308], 0
jne 0x1007017a
mov al, byte [ebp + 0x34d]
test al, 0x40
jne 0x1007017a
test al, 8
je 0x1007017a
mov esi, dword [esp + 0x34]
call fcn.1001cfd0
test al, al
je 0x1007017a
push 0
push 0x14
lea esi, [esp + 0x4c]
call fcn.100287e0
mov ecx, dword [eax + 4]
mov edx, dword [eax]
mov eax, dword [esp + 0x38]
push ecx
mov ecx, dword [esp + 0x38]
push edx
push eax
push ecx
call fcn.100287c0
add esp, 0x18
test al, al
je 0x1007017a
push 0x34
jmp 0x1007009e
mov eax, dword [ebp + 0x1bc]
mov ecx, dword [ebp + 0x1b8]
mov esi, dword [esp + 0x40]
push eax
push ecx
push esi
push edi
lea eax, [esp + 0x54]
call fcn.10001840
mov edx, dword [eax]
mov ecx, dword [ebp + 0x1c4]
mov eax, dword [eax + 4]
push ecx
mov dword [esp + 0x40], edx
mov edx, dword [ebp + 0x1c0]
push edx
mov dword [esp + 0x48], eax
push esi
push edi
lea eax, [esp + 0x64]
call fcn.10001840
mov ecx, dword [eax]
mov edx, dword [eax + 4]
mov eax, dword [ebp + 0x138]
mov eax, dword [eax + 0xc0]
mov dword [esp + 0x48], edx
cdq
push edx
push eax
lea esi, [esp + 0x44]
mov dword [esp + 0x4c], ecx
call fcn.100287e0
add esp, 0x28
test bl, bl
je 0x100702db
test byte [ebp + 0x34d], 0x28
jne 0x10070263
mov esi, dword [esp + 0x20]
mov ebx, dword [esp + 0x1c]
mov ecx, dword [esp + 0x30]
mov edx, dword [esp + 0x2c]
push esi
push ebx
push ecx
push edx
call fcn.100287c0
add esp, 0x10
test al, al
je 0x10070263
mov eax, dword [esp + 0x28]
mov ecx, dword [esp + 0x24]
push esi
push ebx
push eax
push ecx
call fcn.100287c0
add esp, 0x10
test al, al
je 0x10070263
mov eax, dword [ebp + 0x138]
mov ecx, dword [eax + 0x9d4]
cmp ecx, dword [eax + 0x24c]
jge 0x1007025c
mov ecx, dword [esp + 0x34]
mov edx, dword [ecx + 0x4f4]
mov eax, dword [ecx + 0xb4]
and edx, 0xffffff
cmp eax, edx
jl 0x10070263
push 0x31
jmp 0x10070034
mov eax, dword [ebp + 0x284]
test eax, eax
je 0x100702db
mov ecx, dword [ebp + 0x288]
sub ecx, eax
sar ecx, 3
je 0x100702db
cmp dword [ebp + 0x44], 0
jle 0x100702db
mov eax, dword [ebp + 0x138]
add eax, 0x48
mov eax, dword [eax + 0x34]
add eax, dword [ebp + 0x2e0]
lea esi, [esp + 0x44]
cdq
push edx
push eax
call fcn.100287e0
mov edx, dword [eax + 4]
mov eax, dword [eax]
mov ecx, dword [ebp + 0x1a4]
push edx
mov edx, dword [ebp + 0x1a0]
push eax
push ecx
push edx
lea eax, [esp + 0x44]
call fcn.10024540
mov ecx, dword [eax + 4]
mov edx, dword [eax]
mov eax, dword [esp + 0x58]
push ecx
push edx
push eax
push edi
call fcn.10065190
add esp, 0x28
test al, al
je 0x100702db
push ebp
call fcn.100708f0
mov esi, ebp
call fcn.100733f0
mov ecx, dword [ebp + 0x138]
cmp byte [ecx + 0xb4], 0
je 0x10070300
mov eax, ebp
call fcn.1006f210
test al, al
je 0x10070300
mov al, 1
jmp 0x10070302
xor al, al
mov dl, byte [ebp + 0x34e]
xor dl, al
and dl, 1
xor byte [ebp + 0x34e], dl
lea ebx, [ebp + 0x48]
mov esi, ebx
mov edi, 0xa
lea ecx, [ecx]
mov eax, dword [esp + 0x84]
push eax
call fcn.100ab180
add esi, 0x18
sub edi, 1
jne 0x10070320
mov eax, dword [ebp + 0x4c]
cmp eax, dword [ebp + 0x340]
jle 0x10070346
mov dword [ebp + 0x340], eax
mov eax, dword [ebp + 0x7c]
cmp eax, dword [ebp + 0x33c]
jle 0x10070357
mov dword [ebp + 0x33c], eax
mov edx, dword [ebp]
mov eax, dword [edx + 4]
mov ecx, ebp
call eax
test al, al
je 0x100703ae
mov byte [esp + 0x78], 0
mov esi, dword [esp + 0x38]
or ebx, 0xffffffff
test esi, esi
je 0x100708a3
lea ecx, [esi + 4]
mov edx, ebx
lock xadd dword [ecx], edx
jne 0x100708a3
mov eax, dword [esi]
mov edx, dword [eax + 4]
mov ecx, esi
call edx
lea eax, [esi + 8]
mov ecx, ebx
lock xadd dword [eax], ecx
jne 0x100708a3
mov edx, dword [esi]
mov eax, dword [edx + 8]
mov ecx, esi
call eax
jmp 0x100708a3
mov edi, dword [esp + 0x34]
test byte [edi + 0x4d8], 4
je 0x100707ba
push ebp
call fcn.1006fb60
movzx ecx, byte [ebp + 0x34b]
cmp ecx, dword [ebp + 0x13c]
jne 0x10070436
mov esi, dword [edi + 0x2e0]
add esi, 0x368
call fcn.10074370
test al, al
je 0x10070436
lea edx, [esp + 0x44]
push edx
mov ecx, edi
call fcn.100cc330
mov ecx, eax
push 1
lea eax, [esp + 0x50]
call fcn.10065480
mov byte [esp + 0x78], 7
mov ecx, dword [edi + 0x2e0]
push eax
add ecx, 0x368
call fcn.1000dc40
lea eax, [esp + 0x4c]
push eax
mov byte [esp + 0x7c], 6
call fcn.1000c300
lea eax, [esp + 0x44]
mov byte [esp + 0x78], 1
call fcn.100d2230
mov ecx, dword [ebp + 0x138]
mov eax, dword [ebp + 0x38]
test eax, eax
mov edx, dword [ecx + 0x78]
mov edi, accept
mov dword [esp + 0x2c], edx
mov dword [esp + 0x84], edi
jle 0x10070472
mov dword [esp + 0x24], eax
cmp eax, edi
lea eax, [esp + 0x84]
jg 0x10070469
lea eax, [esp + 0x24]
mov edi, dword [eax]
mov dword [esp + 0x84], edi
mov edx, dword [esp + 0x34]
mov eax, dword [edx + 0x50]
test eax, eax
jle 0x100704a2
mov esi, dword [edx + 0xb4]
cdq
idiv esi
mov dword [esp + 0x24], eax
cmp edi, eax
lea eax, [esp + 0x84]
jl 0x10070499
lea eax, [esp + 0x24]
mov edi, dword [eax]
mov dword [esp + 0x84], edi
mov eax, dword [ecx + 0x8e8]
test eax, eax
jle 0x100704ca
mov ecx, dword [ecx + 0x9d4]
cdq
idiv ecx
mov dword [esp + 0x24], eax
cmp edi, eax
lea eax, [esp + 0x84]
jl 0x100704c8
lea eax, [esp + 0x24]
mov edi, dword [eax]
mov eax, dword [esp + 0x34]
movzx ecx, byte [eax + 0x4ef]
and ecx, 0x1f
mov esi, 1
shl esi, cl
mov eax, edi
cdq
idiv esi
cmp dword [esp + 0x2c], eax
mov ecx, eax
jl 0x100704f0
mov ecx, dword [esp + 0x2c]
mov eax, dword [ebp + 0x284]
test eax, eax
je 0x10070564
mov edx, dword [ebp + 0x288]
sub edx, eax
sar edx, 3
je 0x10070564
cmp dword [ebp + 0x44], 0
jle 0x10070564
mov eax, dword [ebp + 0x2e0]
add eax, ecx
cdq
push edx
push eax
lea esi, [esp + 0x4c]
call fcn.100287e0
mov ecx, dword [ebp + 0x168]
mov edx, dword [esp + 0x48]
mov esi, eax
mov eax, dword [ebp + 0x16c]
push eax
mov eax, dword [esp + 0x48]
push ecx
push edx
push eax
lea eax, [esp + 0x44]
call fcn.10001840
mov ecx, dword [esi + 4]
mov edx, dword [esi]
push ecx
mov ecx, dword [eax + 4]
push edx
mov edx, dword [eax]
push ecx
push edx
call fcn.100287c0
add esp, 0x28
test al, al
je 0x10070564
push ebp
call fcn.100708f0
mov esi, dword [esp + 0x34]
call fcn.1001cfd0
test al, al
jne 0x100706d6
test byte [ebp + 0x34d], 0x40
jne 0x100706d6
fld dword [esi + 0x4a8]
fstp dword [esp + 0x84]
fldz
fcomp dword [esp + 0x84]
fnstsw ax
test ah, 0x44
jnp 0x100706d6
mov eax, esi
movzx ecx, byte [eax + 0x4ef]
and ecx, 0x1f
mov eax, 1
shl eax, cl
mov ecx, dword [ebx + 0x34]
lea eax, [eax + eax + 0x10000]
cdq
mov esi, eax
mov eax, dword [ebx + 0xac]
add esi, dword [ebp + 0x1c8]
mov dword [esp + 0x84], eax
mov eax, dword [ebx + 0xc4]
mov edi, edx
adc edi, dword [ebp + 0x1cc]
mov edx, dword [ebx + 0x4c]
mov ebx, dword [ebx + 0xdc]
add eax, ebx
add eax, dword [esp + 0x84]
add eax, edx
add eax, ecx
imul eax, eax, 0x16
cdq
mov ecx, eax
mov eax, dword [esp + 0x34]
add ecx, dword [ebp + 0x88]
fld dword [eax + 0x4a8]
fstp dword [esp + 0x84]
fld1
adc edx, dword [ebp + 0x8c]
fcomp dword [esp + 0x84]
mov dword [esp + 0x2c], ecx
mov dword [esp + 0x30], edx
fnstsw ax
test ah, 0x44
jnp 0x10070658
mov ecx, dword [esp + 0x34]
fld dword [ecx + 0x4a8]
fstp dword [esp + 0x84]
fild qword [esp + 0x2c]
fmul dword [esp + 0x84]
call fcn.1010ecc6
mov ecx, eax
sub ecx, dword [ebp + 0x58]
push 0
sbb edx, dword [ebp + 0x5c]
add ecx, esi
push 0xf
adc edx, edi
push edx
push ecx
call fcn.1010e550
mov ecx, dword [ebp + 0x314]
test ecx, ecx
lea edx, [ebp + 0x314]
mov dword [esp + 0x84], eax
jle 0x10070691
cmp ecx, eax
jge 0x10070691
mov eax, ecx
mov dword [esp + 0x84], eax
cmp eax, 0x7fffffff
mov dword [esp + 0x2c], accept
lea eax, [esp + 0x2c]
jg 0x100706ab
lea eax, [esp + 0x84]
mov eax, dword [eax]
mov dword [esp + 0x84], eax
cmp eax, 0xa
mov dword [esp + 0x2c], 0xa
lea eax, [esp + 0x2c]
jl 0x100706cc
lea eax, [esp + 0x84]
cmp ecx, dword [eax]
jl 0x100706d2
mov edx, eax
mov eax, dword [edx]
jmp 0x100706dc
mov eax, dword [ebp + 0x314]
cdq
push 0
push 0x3c
lea esi, [esp + 0x34]
mov dword [ebp + 0x24], edx
mov dword [ebp + 0x20], eax
call fcn.100287e0
mov edi, dword [eax]
mov esi, dword [eax + 4]
mov edx, dword [ebp + 0x1ac]
mov eax, dword [ebp + 0x1a8]
mov ecx, dword [esp + 0x48]
mov ebx, dword [esp + 0x44]
push edx
push eax
push ecx
push ebx
lea eax, [esp + 0x3c]
call fcn.10001840
mov ecx, dword [eax]
add esp, 0x18
cmp dword [eax + 4], esi
jl 0x100707b3
jg 0x1007072e
cmp ecx, edi
jb 0x100707b3
mov eax, dword [ebp + 0x334]
test eax, eax
jle 0x1007077a
lea ecx, [eax + eax]
mov eax, 0x55555556
imul ecx
mov ecx, dword [ebp + 0x330]
mov esi, edx
shr esi, 0x1f
add esi, edx
mov eax, 0x55555556
imul ecx
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
mov eax, 0x88888889
imul ecx
add edx, ecx
sar edx, 5
mov eax, edx
shr eax, 0x1f
add esi, edx
add eax, esi
mov dword [ebp + 0x334], eax
jmp 0x10070799
mov ecx, dword [ebp + 0x330]
mov eax, 0x88888889
imul ecx
add edx, ecx
sar edx, 5
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
mov dword [ebp + 0x334], ecx
mov edx, dword [esp + 0x40]
mov dword [ebp + 0x330], 0
mov dword [ebp + 0x1a8], ebx
mov dword [ebp + 0x1ac], edx
mov ebx, ebp
call fcn.10070ea0
lea eax, [esp + 0x34]
mov byte [esp + 0x78], 0
call fcn.10086b50
lea eax, [esp + 0x80]
mov dword [esp + 0x78], 0xffffffff
call fcn.10019630
jmp 0x100708d1
mov eax, dword [ebp + 0x324]
mov ecx, dword [ebp + 0x138]
push eax
add ecx, 0x840
call fcn.100248c0
or ebx, 0xffffffff
cmp dword [ebp + 0x324], ebx
jl 0x1007080a
mov dword [ebp + 0x324], ebx
test byte [ebp + 0x34e], 0x10
je 0x10070824
test edi, edi
je 0x10070824
add dword [edi + 0xb8], ebx
and byte [ebp + 0x34e], 0xef
test byte [0x10154fc8], 1
jne 0x1007084b
or dword [0x10154fc8], 1
push 0x101261b0
mov dword [0x10154fcc], 0x10129a10
call fcn.1010dee9
add esp, 4
mov edx, dword [ebp]
mov edx, dword [edx + 0x1c]
mov eax, 0x2e
mov ecx, 0x10154fcc
mov dword [esp + 0x3c], eax
push 0
lea eax, [esp + 0x40]
mov dword [esp + 0x44], ecx
push eax
mov ecx, ebp
call edx
mov byte [esp + 0x78], 0
mov esi, dword [esp + 0x38]
test esi, esi
je 0x100708a3
mov ecx, ebx
lea eax, [esi + 4]
lock xadd dword [eax], ecx
jne 0x100708a3
mov edx, dword [esi]
mov eax, dword [edx + 4]
mov ecx, esi
call eax
mov edx, ebx
lea ecx, [esi + 8]
lock xadd dword [ecx], edx
jne 0x100708a3
mov eax, dword [esi]
mov edx, dword [eax + 8]
mov ecx, esi
call edx
mov dword [esp + 0x78], ebx
mov eax, dword [esp + 0x80]
test eax, eax
je 0x100708d1
add eax, 4
mov ecx, eax
lock xadd dword [ecx], ebx
jne 0x100708d1
test eax, eax
je 0x100708d1
lea ecx, [eax - 4]
test ecx, ecx
je 0x100708d1
mov edx, dword [ecx]
mov eax, dword [edx + 8]
push 1
call eax
mov ecx, dword [esp + 0x70]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x68
ret 8