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

Disassembly:
push 0xffffffffffffffff
push 0x52ce33
mov eax, dword fs:[0]
push eax
sub esp, 0xb8
mov eax, dword [0x56fcac]
xor eax, esp
mov dword [esp + 0xb4], eax
push ebx
push ebp
push esi
push edi
mov eax, dword [0x56fcac]
xor eax, esp
push eax
lea eax, [esp + 0xcc]
mov dword fs:[0], eax
mov eax, dword [esp + 0xdc]
mov ebx, dword [esp + 0xe8]
xor ebp, ebp
mov dword [esp + 0x28], eax
mov eax, dword [esp + 0xec]
mov dword [esp + 0x34], ebx
mov dword [esp + 0x2c], ebp
mov dword [esp + 0xd4], 1
mov dword [esp + 0x1c], ebp
mov dword [esp + 0x20], ebp
mov dword [esp + 0x24], ebp
lea ecx, [esp + 0x18]
push ecx
push 0x5c
push eax
mov byte [esp + 0xe0], 3
call fcn.00446580
mov esi, dword [esp + 0x28]
mov edi, dword [esp + 0x2c]
add esp, 0xc
cmp esi, ebp
je 0x429678
mov ecx, edi
sub ecx, esi
mov eax, 0x92492493
imul ecx
add edx, ecx
sar edx, 4
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp eax, ebp
jne 0x429754
mov eax, dword [esp + 0x28]
mov ebx, dword [esp + 0xe4]
cmp ebx, ebp
mov edx, dword [esp + 0xe0]
mov dword [eax], edx
mov dword [eax + 4], ebx
je 0x4296a7
lea eax, [ebx + 4]
mov ecx, 1
lock xadd dword [eax], ecx
mov edi, dword [esp + 0x20]
mov esi, dword [esp + 0x1c]
cmp esi, ebp
mov dword [esp + 0x2c], 1
je 0x4296cc
mov edx, dword [esp + 0x34]
push edx
mov eax, esi
call fcn.00403ea0
mov eax, dword [esp + 0x20]
push eax
call fcn.004aaa59
add esp, 8
cmp ebx, ebp
mov dword [esp + 0x1c], ebp
mov dword [esp + 0x20], ebp
mov dword [esp + 0x24], ebp
mov byte [esp + 0xd4], 1
je 0x42970e
lea ecx, [ebx + 4]
or edx, 0xffffffff
lock xadd dword [ecx], edx
jne 0x42970e
mov eax, dword [ebx]
mov edx, dword [eax + 4]
mov ecx, ebx
call edx
lea eax, [ebx + 8]
or ecx, 0xffffffff
lock xadd dword [eax], ecx
jne 0x42970e
mov edx, dword [ebx]
mov eax, dword [edx + 8]
mov ecx, ebx
call eax
mov byte [esp + 0xd4], 0
mov esi, dword [esp + 0xf4]
cmp esi, ebp
je 0x42974b
lea ecx, [esi + 4]
or edx, 0xffffffff
lock xadd dword [ecx], edx
jne 0x42974b
mov eax, dword [esi]
mov edx, dword [eax + 4]
mov ecx, esi
call edx
lea eax, [esi + 8]
or ecx, 0xffffffff
lock xadd dword [eax], ecx
jne 0x42974b
mov edx, dword [esi]
mov eax, dword [edx + 8]
mov ecx, esi
call eax
mov eax, dword [esp + 0x28]
jmp 0x42a3bc
cmp eax, 1
jne 0x429ec1
mov ebx, dword [esp + 0xe0]
cmp dword [ebx + 0x98], ebp
je 0x4297b1
mov edi, dword [esp + 0x28]
mov dword [edi], ebp
mov dword [edi + 4], ebp
mov dword [esp + 0x2c], eax
lea esi, [esp + 0x18]
call fcn.004098f0
lea eax, [esp + 0xe0]
mov byte [esp + 0xd4], 1
call fcn.004101d0
lea eax, [esp + 0xf0]
mov byte [esp + 0xd4], 0
call fcn.00411e60
mov eax, edi
jmp 0x42a3bc
mov eax, ebx
xor ebp, ebp
call fcn.00414820
test eax, eax
jbe 0x429849
test esi, esi
je 0x4297dd
sub edi, esi
mov eax, 0x92492493
imul edi
add edx, edi
sar edx, 4
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
jne 0x4297e6
call fcn.004ec14b
mov esi, dword [esp + 0x1c]
mov ecx, dword [ebx + 4]
test ecx, ecx
je 0x4297f9
mov eax, dword [ebx + 8]
sub eax, ecx
sar eax, 3
cmp ebp, eax
jb 0x4297fe
call fcn.004ec14b
cmp dword [esi + 0x18], 8
mov edx, dword [ebx + 4]
lea eax, [edx + ebp*8]
mov eax, dword [eax]
lea ecx, [eax + 0x10]
mov eax, dword [esi + 0x14]
jb 0x429817
mov esi, dword [esi + 4]
jmp 0x42981a
add esi, 4
push eax
mov eax, dword [ecx + 0x14]
push esi
push eax
push 0
call fcn.00405e60
test eax, eax
je 0x4299fa
mov eax, ebx
add ebp, 1
call fcn.00414820
cmp ebp, eax
mov edi, dword [esp + 0x20]
mov esi, dword [esp + 0x1c]
jb 0x4297c2
xor ebp, ebp
cmp esi, ebp
je 0x429866
sub edi, esi
mov eax, 0x92492493
imul edi
add edx, edi
sar edx, 4
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
jne 0x42986f
call fcn.004ec14b
mov esi, dword [esp + 0x1c]
mov edx, dword [esp + 0x34]
push esi
push edx
lea eax, [esp + 0x6c]
push eax
call fcn.00408d00
mov edi, 7
mov dword [esp + 0x8c], ebp
mov dword [esp + 0x90], ebp
mov dword [esp + 0xac], ebp
mov dword [esp + 0xb0], ebp
mov dword [esp + 0xcc], edi
mov dword [esp + 0xc8], ebp
mov word [esp + 0xb8], bp
lea ecx, [esp + 0x8c]
push ecx
lea edx, [esp + 0x74]
push edx
mov byte [esp + 0xe8], 5
call fcn.00406640
add esp, 0x14
test al, al
jne 0x429afb
mov ebx, dword [esp + 0x28]
mov esi, 8
cmp dword [esp + 0xc0], esi
mov dword [ebx], ebp
mov dword [ebx + 4], ebp
mov dword [esp + 0x2c], 1
jb 0x42990a
mov eax, dword [esp + 0xac]
push eax
call fcn.004aaa59
add esp, 4
cmp dword [esp + 0x7c], esi
mov dword [esp + 0xc0], edi
mov dword [esp + 0xbc], ebp
mov word [esp + 0xac], bp
jb 0x429933
mov ecx, dword [esp + 0x68]
push ecx
call fcn.004aaa59
add esp, 4
mov eax, dword [esp + 0x1c]
cmp eax, ebp
mov dword [esp + 0x7c], edi
mov dword [esp + 0x78], ebp
mov word [esp + 0x68], bp
je 0x429963
mov edx, dword [esp + 0x30]
mov edi, dword [esp + 0x20]
push edx
call fcn.00403ea0
mov eax, dword [esp + 0x20]
push eax
call fcn.004aaa59
add esp, 8
mov byte [esp + 0xd4], 1
mov esi, dword [esp + 0xe4]
cmp esi, ebp
mov dword [esp + 0x1c], ebp
mov dword [esp + 0x20], ebp
mov dword [esp + 0x24], ebp
je 0x4299ac
lea ecx, [esi + 4]
or edx, 0xffffffff
lock xadd dword [ecx], edx
jne 0x4299ac
mov eax, dword [esi]
mov edx, dword [eax + 4]
mov ecx, esi
call edx
lea eax, [esi + 8]
or ecx, 0xffffffff
lock xadd dword [eax], ecx
jne 0x4299ac
mov edx, dword [esi]
mov eax, dword [edx + 8]
mov ecx, esi
call eax
mov byte [esp + 0xd4], 0
mov esi, dword [esp + 0xf4]
cmp esi, ebp
je 0x42a3ba
lea ecx, [esi + 4]
or edx, 0xffffffff
lock xadd dword [ecx], edx
jne 0x42a3ba
mov eax, dword [esi]
mov edx, dword [eax + 4]
mov ecx, esi
call edx
lea eax, [esi + 8]
or ecx, 0xffffffff
lock xadd dword [eax], ecx
jne 0x42a3ba
mov edx, dword [esi]
mov eax, dword [edx + 8]
mov ecx, esi
call eax
jmp 0x42a3ba
mov ecx, dword [ebx + 4]
test ecx, ecx
je 0x429a0d
mov eax, dword [ebx + 8]
sub eax, ecx
sar eax, 3
cmp ebp, eax
jb 0x429a12
call fcn.004ec14b
mov ecx, dword [ebx + 4]
mov edx, dword [ecx + ebp*8]
mov ebx, dword [esp + 0x28]
lea ebp, [ecx + ebp*8]
mov dword [ebx], edx
mov eax, dword [ebp + 4]
test eax, eax
mov dword [ebx + 4], eax
je 0x429a37
add eax, 4
mov ecx, 1
lock xadd dword [eax], ecx
mov eax, dword [esp + 0x1c]
test eax, eax
mov dword [esp + 0x2c], 1
je 0x429a62
mov edx, dword [esp + 0x30]
mov edi, dword [esp + 0x20]
push edx
call fcn.00403ea0
mov eax, dword [esp + 0x20]
push eax
call fcn.004aaa59
add esp, 8
xor edi, edi
mov byte [esp + 0xd4], 1
mov esi, dword [esp + 0xe4]
cmp esi, edi
mov dword [esp + 0x1c], edi
mov dword [esp + 0x20], edi
mov dword [esp + 0x24], edi
je 0x429aad
lea ecx, [esi + 4]
or edx, 0xffffffff
lock xadd dword [ecx], edx
jne 0x429aad
mov eax, dword [esi]
mov edx, dword [eax + 4]
mov ecx, esi
call edx
lea eax, [esi + 8]
or ecx, 0xffffffff
lock xadd dword [eax], ecx
jne 0x429aad
mov edx, dword [esi]
mov eax, dword [edx + 8]
mov ecx, esi
call eax
mov byte [esp + 0xd4], 0
mov esi, dword [esp + 0xf4]
cmp esi, edi
je 0x42a3ba
lea ecx, [esi + 4]
or edx, 0xffffffff
lock xadd dword [ecx], edx
jne 0x42a3ba
mov eax, dword [esi]
mov edx, dword [eax + 4]
mov ecx, esi
call edx
lea eax, [esi + 8]
or ecx, 0xffffffff
lock xadd dword [eax], ecx
jne 0x42a3ba
mov edx, dword [esi]
mov eax, dword [edx + 8]
mov ecx, esi
call eax
jmp 0x42a3ba
mov eax, dword [esp + 0xa0]
and eax, 0x10
xor ecx, ecx
or eax, ecx
push 0xa0
je 0x429c3f
call fcn.004aaa2e
add esp, 4
mov dword [esp + 0x30], eax
cmp eax, ebp
mov byte [esp + 0xd4], 6
je 0x429b38
push 0
push ebx
call fcn.0040fb30
mov ebp, eax
jmp 0x429b3a
xor ebp, ebp
mov byte [esp + 0xd4], 5
push ebp
lea ecx, [esp + 0x40]
mov dword [esp + 0x3c], ebp
call fcn.004168e0
push ebp
push ebp
call fcn.0040fab0
add esp, 8
xor edi, edi
lea esi, [esp + 0x18]
mov byte [esp + 0xd4], 7
call fcn.00409930
push 0xffffffffffffffff
push edi
push eax
lea ecx, [ebp + 0x10]
call fcn.00403310
push 0xffffffffffffffff
push edi
lea ecx, [esp + 0x6c]
push ecx
lea ecx, [ebp + 0x2c]
call fcn.00403310
mov edx, dword [esp + 0xa0]
mov dword [ebp + 0x60], edx
mov eax, dword [esp + 0x88]
mov dword [ebp + 0x48], eax
mov ecx, dword [esp + 0x8c]
mov dword [ebp + 0x4c], ecx
mov edx, dword [esp + 0x90]
mov dword [ebp + 0x50], edx
mov eax, dword [esp + 0x94]
mov dword [ebp + 0x54], eax
mov ecx, dword [esp + 0x98]
mov dword [ebp + 0x58], ecx
mov edx, dword [esp + 0x9c]
mov ecx, dword [esp + 0xf0]
test ecx, ecx
mov dword [ebp + 0x5c], edx
mov byte [esp + 0x17], 0
je 0x429df5
mov eax, dword [ecx]
mov eax, dword [eax + 0xc]
lea edx, [esp + 0x17]
push edx
push ebp
call eax
cmp byte [esp + 0x17], 0
je 0x429df5
mov edi, dword [esp + 0x28]
mov dword [edi], 0
lea eax, [esp + 0x38]
mov dword [edi + 4], 0
mov dword [esp + 0x2c], 1
mov byte [esp + 0xd4], 5
call fcn.004101d0
lea ecx, [esp + 0x80]
call fcn.004087c0
lea ecx, [esp + 0x64]
call fcn.00401e70
jmp 0x429779
call fcn.004aaa2e
add esp, 4
mov dword [esp + 0x30], eax
cmp eax, ebp
mov byte [esp + 0xd4], 8
je 0x429c63
push 1
push ebx
call fcn.0040fb30
mov ebp, eax
jmp 0x429c65
xor ebp, ebp
mov byte [esp + 0xd4], 5
push ebp
lea ecx, [esp + 0x40]
mov dword [esp + 0x3c], ebp
call fcn.004168e0
push ebp
push ebp
call fcn.0040fab0
add esp, 8
xor edi, edi
lea esi, [esp + 0x18]
mov byte [esp + 0xd4], 9
call fcn.00409930
push 0xffffffffffffffff
push edi
push eax
lea ecx, [ebp + 0x10]
call fcn.00403310
call fcn.00409930
mov ecx, dword [esp + 0x34]
push eax
push ecx
lea edx, [esp + 0x50]
push edx
call fcn.00408d00
add esp, 0xc
push 0xffffffffffffffff
push edi
push eax
lea ecx, [ebp + 0x2c]
mov byte [esp + 0xe0], 0xa
call fcn.00403310
mov byte [esp + 0xd4], 9
cmp dword [esp + 0x60], 8
jb 0x429cec
mov eax, dword [esp + 0x4c]
push eax
call fcn.004aaa59
add esp, 4
mov ecx, dword [esp + 0xa0]
mov esi, dword [esp + 0xf0]
test esi, esi
mov dword [ebp + 0x60], ecx
mov edx, dword [esp + 0x88]
mov dword [ebp + 0x48], edx
mov eax, dword [esp + 0x8c]
mov dword [ebp + 0x4c], eax
mov ecx, dword [esp + 0x90]
mov dword [ebp + 0x50], ecx
mov edx, dword [esp + 0x94]
mov dword [ebp + 0x54], edx
mov eax, dword [esp + 0x98]
mov dword [ebp + 0x58], eax
mov ecx, dword [esp + 0x9c]
mov dword [ebp + 0x5c], ecx
mov edx, dword [esp + 0x80]
mov dword [ebp + 0x68], edx
mov eax, dword [esp + 0x84]
mov edi, 1
mov dword [ebp + 0x6c], eax
mov dword [ebp + 0x70], edi
mov byte [esp + 0x17], 0
je 0x429df5
mov edx, dword [esi]
mov edx, dword [edx + 0xc]
lea eax, [esp + 0x17]
push eax
push ebp
mov ecx, esi
call edx
mov eax, dword [esi]
mov edx, dword [eax + 8]
mov ecx, esi
call edx
mov dword [ebp + 0x70], eax
cmp byte [esp + 0x17], 0
je 0x429df5
mov ebx, dword [esp + 0x28]
mov dword [ebx], 0
lea eax, [esp + 0x38]
mov dword [ebx + 4], 0
mov dword [esp + 0x2c], edi
mov byte [esp + 0xd4], 5
call fcn.004101d0
lea ecx, [esp + 0x80]
call fcn.004087c0
lea ecx, [esp + 0x64]
call fcn.00401e70
lea esi, [esp + 0x18]
call fcn.004098f0
lea eax, [esp + 0xe0]
mov byte [esp + 0xd4], 1
call fcn.004101d0
lea eax, [esp + 0xf0]
mov byte [esp + 0xd4], 0
call fcn.00411e60
jmp 0x42a3ba
lea eax, [esp + 0x38]
mov edi, ebx
call fcn.00414880
lea eax, [esp + 0x38]
mov byte [esp + 0xd4], 5
call fcn.004101d0
mov esi, dword [ebx + 8]
cmp dword [ebx + 4], esi
jbe 0x429e1e
call fcn.004ec14b
cmp esi, dword [ebx + 4]
mov edi, ebx
mov dword [esp + 0x44], esi
ja 0x429e2e
call fcn.004ec14b
add esi, 0xfffffff8
cmp esi, dword [edi + 8]
jb 0x429e3b
call fcn.004ec14b
mov eax, dword [esi]
mov edi, dword [esp + 0x28]
mov dword [edi], eax
mov eax, dword [esi + 4]
xor esi, esi
cmp eax, esi
mov dword [edi + 4], eax
je 0x429e5b
add eax, 4
mov ecx, 1
lock xadd dword [eax], ecx
mov ebp, 8
cmp dword [esp + 0xc0], ebp
mov dword [esp + 0x2c], 1
jb 0x429e81
mov edx, dword [esp + 0xac]
push edx
call fcn.004aaa59
add esp, 4
cmp dword [esp + 0x7c], ebp
mov ebx, 7
mov dword [esp + 0xc0], ebx
mov dword [esp + 0xbc], esi
mov word [esp + 0xac], si
jb 0x429eaf
mov eax, dword [esp + 0x68]
push eax
call fcn.004aaa59
add esp, 4
mov dword [esp + 0x7c], ebx
mov dword [esp + 0x78], esi
mov word [esp + 0x68], si
jmp 0x429779
xor edi, edi
push 0xffffffffffffffff
push edi
push ebx
lea ecx, [esp + 0x70]
mov dword [esp + 0x88], 7
mov dword [esp + 0x84], edi
mov word [esp + 0x74], di
call fcn.00403310
mov esi, dword [esp + 0xe4]
cmp esi, edi
mov ebp, dword [esp + 0xe0]
mov dword [esp + 0x40], ebp
mov dword [esp + 0x44], esi
je 0x429f0d
lea ecx, [esi + 4]
mov edx, 1
lock xadd dword [ecx], edx
mov byte [esp + 0xd4], 0xc
xor ebx, ebx
mov dword [esp + 0x34], edi
cmp dword [esp + 0x1c], 0
mov edi, dword [esp + 0xf4]
je 0x42a27f
mov ecx, dword [esp + 0x20]
sub ecx, dword [esp + 0x1c]
mov eax, 0x92492493
imul ecx
add edx, ecx
sar edx, 4
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp ebx, eax
jae 0x42a27f
mov ecx, dword [esp + 0xf0]
sub esp, 8
test edi, edi
mov eax, esp
mov dword [eax], ecx
mov dword [esp + 0x38], esp
mov dword [eax + 4], edi
je 0x429f75
add edi, 4
mov edx, 1
lock xadd dword [edi], edx
mov edi, dword [esp + 0x24]
test edi, edi
je 0x429f9a
mov ecx, dword [esp + 0x28]
sub ecx, edi
mov eax, 0x92492493
imul ecx
add edx, ecx
sar edx, 4
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp ebx, eax
jb 0x429fa3
call fcn.004ec14b
mov edi, dword [esp + 0x24]
mov eax, dword [esp + 0x3c]
add eax, edi
push eax
lea ecx, [esp + 0x70]
push ecx
sub esp, 8
test esi, esi
mov eax, esp
mov dword [eax], ebp
mov dword [esp + 0x48], esp
mov dword [eax + 4], esi
je 0x429fcd
lea edx, [esi + 4]
mov eax, 1
lock xadd dword [edx], eax
lea ecx, [esp + 0x50]
push ecx
call fcn.004295c0
add esp, 0x1c
mov byte [esp + 0xd4], 0xd
mov edi, dword [esp + 0x1c]
test edi, edi
je 0x42a007
mov ecx, dword [esp + 0x20]
sub ecx, edi
mov eax, 0x92492493
imul ecx
add edx, ecx
sar edx, 4
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp ebx, eax
jb 0x42a010
call fcn.004ec14b
mov edi, dword [esp + 0x1c]
mov edx, dword [esp + 0x34]
lea eax, [edx + edi]
push eax
lea eax, [esp + 0x68]
push eax
lea ecx, [esp + 0x50]
push ecx
call fcn.00408d00
add esp, 0xc
push 0xffffffffffffffff
push 0
push eax
lea ecx, [esp + 0x70]
mov byte [esp + 0xe0], 0xe
call fcn.00403310
mov byte [esp + 0xd4], 0xd
cmp dword [esp + 0x60], 8
jb 0x42a05c
mov edx, dword [esp + 0x4c]
push edx
call fcn.004aaa59
add esp, 4
mov eax, dword [esp + 0x3c]
cmp eax, esi
mov ebp, dword [esp + 0x38]
mov dword [esp + 0x40], ebp
mov edi, eax
je 0x42a0ba
test eax, eax
je 0x42a082
add eax, 4
mov ecx, 1
lock xadd dword [eax], ecx
mov eax, dword [esp + 0x3c]
test esi, esi
je 0x42a0b4
lea edx, [esi + 4]
or eax, 0xffffffff
lock xadd dword [edx], eax
jne 0x42a0b0
mov edx, dword [esi]
mov eax, dword [edx + 4]
mov ecx, esi
call eax
lea ecx, [esi + 8]
or edx, 0xffffffff
lock xadd dword [ecx], edx
jne 0x42a0b0
mov eax, dword [esi]
mov edx, dword [eax + 8]
mov ecx, esi
call edx
mov eax, dword [esp + 0x3c]
mov esi, edi
mov dword [esp + 0x44], esi
test ebp, ebp
je 0x42a103
test eax, eax
mov byte [esp + 0xd4], 0xc
je 0x42a0f6
mov edi, eax
add eax, 4
or ecx, 0xffffffff
lock xadd dword [eax], ecx
jne 0x42a0f6
mov edx, dword [edi]
mov eax, dword [edx + 4]
mov ecx, edi
call eax
lea ecx, [edi + 8]
or edx, 0xffffffff
lock xadd dword [ecx], edx
jne 0x42a0f6
mov eax, dword [edi]
mov edx, dword [eax + 8]
mov ecx, edi
call edx
add ebx, 1
add dword [esp + 0x34], 0x1c
jmp 0x429f1b
test esi, esi
mov ecx, dword [esp + 0x28]
mov dword [ecx], 0
mov dword [ecx + 4], esi
je 0x42a124
lea eax, [esi + 4]
mov ecx, 1
lock xadd dword [eax], ecx
mov eax, dword [esp + 0x3c]
test eax, eax
mov dword [esp + 0x2c], 1
mov byte [esp + 0xd4], 0xc
je 0x42a164
mov edi, eax
add eax, 4
or edx, 0xffffffff
lock xadd dword [eax], edx
jne 0x42a164
mov eax, dword [edi]
mov edx, dword [eax + 4]
mov ecx, edi
call edx
lea eax, [edi + 8]
or ecx, 0xffffffff
lock xadd dword [eax], ecx
jne 0x42a164
mov edx, dword [edi]
mov eax, dword [edx + 8]
mov ecx, edi
call eax
xor ebx, ebx
cmp esi, ebx
mov byte [esp + 0xd4], 0xb
je 0x42a19c
lea ecx, [esi + 4]
or edx, 0xffffffff
lock xadd dword [ecx], edx
jne 0x42a19c
mov eax, dword [esi]
mov edx, dword [eax + 4]
mov ecx, esi
call edx
lea eax, [esi + 8]
or ecx, 0xffffffff
lock xadd dword [eax], ecx
jne 0x42a19c
mov edx, dword [esi]
mov eax, dword [edx + 8]
mov ecx, esi
call eax
cmp dword [esp + 0x7c], 8
jb 0x42a1b0
mov ecx, dword [esp + 0x68]
push ecx
call fcn.004aaa59
add esp, 4
mov eax, dword [esp + 0x1c]
cmp eax, ebx
mov dword [esp + 0x7c], 7
mov dword [esp + 0x78], ebx
mov word [esp + 0x68], bx
je 0x42a1e4
mov edx, dword [esp + 0x30]
mov edi, dword [esp + 0x20]
push edx
call fcn.00403ea0
mov eax, dword [esp + 0x20]
push eax
call fcn.004aaa59
add esp, 8
mov byte [esp + 0xd4], 1
mov esi, dword [esp + 0xe4]
cmp esi, ebx
mov dword [esp + 0x1c], ebx
mov dword [esp + 0x20], ebx
mov dword [esp + 0x24], ebx
je 0x42a22d
lea ecx, [esi + 4]
or edx, 0xffffffff
lock xadd dword [ecx], edx
jne 0x42a22d
mov eax, dword [esi]
mov edx, dword [eax + 4]
mov ecx, esi
call edx
lea eax, [esi + 8]
or ecx, 0xffffffff
lock xadd dword [eax], ecx
jne 0x42a22d
mov edx, dword [esi]
mov eax, dword [edx + 8]
mov ecx, esi
call eax
mov byte [esp + 0xd4], 0
mov esi, dword [esp + 0xf4]
cmp esi, ebx
je 0x42974b
lea ecx, [esi + 4]
or edx, 0xffffffff
lock xadd dword [ecx], edx
jne 0x42974b
mov eax, dword [esi]
mov edx, dword [eax + 4]
mov ecx, esi
call edx
lea eax, [esi + 8]
or ecx, 0xffffffff
lock xadd dword [eax], ecx
jne 0x42974b
mov edx, dword [esi]
mov eax, dword [edx + 8]
mov ecx, esi
call eax
mov eax, dword [esp + 0x28]
jmp 0x42a3bc
test esi, esi
mov ebx, dword [esp + 0x28]
mov dword [ebx], ebp
mov dword [ebx + 4], esi
je 0x42a298
lea ecx, [esi + 4]
mov edx, 1
lock xadd dword [ecx], edx
test esi, esi
mov dword [esp + 0x2c], 1
mov byte [esp + 0xd4], 0xb
je 0x42a2d6
lea eax, [esi + 4]
or ecx, 0xffffffff
lock xadd dword [eax], ecx
jne 0x42a2d6
mov edx, dword [esi]
mov eax, dword [edx + 4]
mov ecx, esi
call eax
lea ecx, [esi + 8]
or edx, 0xffffffff
lock xadd dword [ecx], edx
jne 0x42a2d6
mov eax, dword [esi]
mov edx, dword [eax + 8]
mov ecx, esi
call edx
cmp dword [esp + 0x7c], 8
jb 0x42a2ea
mov eax, dword [esp + 0x68]
push eax
call fcn.004aaa59
add esp, 4
xor eax, eax
cmp dword [esp + 0x1c], eax
mov dword [esp + 0x7c], 7
mov dword [esp + 0x78], eax
mov word [esp + 0x68], ax
je 0x42a32d
mov ecx, dword [esp + 0x30]
mov edi, dword [esp + 0x20]
mov eax, dword [esp + 0x1c]
push ecx
call fcn.00403ea0
mov edx, dword [esp + 0x20]
push edx
call fcn.004aaa59
mov edi, dword [esp + 0xfc]
mov ebx, dword [esp + 0x30]
add esp, 8
xor eax, eax
mov byte [esp + 0xd4], 1
cmp dword [esp + 0xe4], eax
mov dword [esp + 0x1c], eax
mov dword [esp + 0x20], eax
mov dword [esp + 0x24], eax
je 0x42a384
mov eax, dword [esp + 0xe4]
add eax, 4
or ecx, 0xffffffff
lock xadd dword [eax], ecx
jne 0x42a384
mov esi, dword [esp + 0xe4]
mov edx, dword [esi]
mov eax, dword [edx + 4]
mov ecx, esi
call eax
lea ecx, [esi + 8]
or edx, 0xffffffff
lock xadd dword [ecx], edx
jne 0x42a384
mov eax, dword [esi]
mov edx, dword [eax + 8]
mov ecx, esi
call edx
test edi, edi
mov byte [esp + 0xd4], 0
je 0x42a3ba
lea eax, [edi + 4]
or ecx, 0xffffffff
lock xadd dword [eax], ecx
jne 0x42a3ba
mov edx, dword [edi]
mov eax, dword [edx + 4]
mov ecx, edi
call eax
lea ecx, [edi + 8]
or edx, 0xffffffff
lock xadd dword [ecx], edx
jne 0x42a3ba
mov eax, dword [edi]
mov edx, dword [eax + 8]
mov ecx, edi
call edx
mov eax, ebx
mov ecx, dword [esp + 0xcc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebp
pop ebx
mov ecx, dword [esp + 0xb4]
xor ecx, esp
call fcn.004ead41
add esp, 0xc4
ret