Function at 0x426550
Capabilities:
Check os version

Disassembly:
push 0xffffffffffffffff
push 0x48a254
mov eax, dword fs:[0]
push eax
sub esp, 0x9e8
mov eax, dword [0x4a9150]
xor eax, esp
mov dword [esp + 0x9e4], eax
push ebx
push ebp
push esi
push edi
mov eax, dword [0x4a9150]
xor eax, esp
push eax
lea eax, [esp + 0x9fc]
mov dword fs:[0], eax
mov ebp, ecx
lea ecx, [esp + 0x6c]
mov dword [esp + 0x20], ebp
call fcn.00419d50
mov ecx, dword [ebp]
push 0
lea eax, [esp + 0x70]
push eax
mov dword [esp + 0xa0c], 0
call fcn.0041ba40
lea ecx, [esp + 0x30]
call fcn.00419ea0
lea ecx, [esp + 0x30]
push ecx
mov ecx, dword [ebp]
mov byte [esp + 0xa08], 1
call fcn.0041d770
mov edx, dword [esp + 0x44]
mov ebx, dword [edx]
mov esi, dword [esp + 0x30]
lea esp, [esp]
mov edi, dword [esp + 0x44]
test esi, esi
je 0x4265ee
cmp esi, dword [esp + 0x30]
je 0x4265f3
call fcn.0043f4c6
cmp ebx, edi
je 0x42667f
test esi, esi
jne 0x42664e
call fcn.0043f4c6
xor eax, eax
cmp ebx, dword [eax + 0x14]
jne 0x426610
call fcn.0043f4c6
cmp dword [ebx + 0xc], 0
jle 0x42665a
test esi, esi
jne 0x426652
call fcn.0043f4c6
xor eax, eax
cmp ebx, dword [eax + 0x14]
jne 0x42662b
call fcn.0043f4c6
test esi, esi
jne 0x426656
call fcn.0043f4c6
xor eax, eax
cmp ebx, dword [eax + 0x14]
jne 0x426640
call fcn.0043f4c6
mov eax, dword [ebx + 0x10]
imul eax, eax, 0x7d0
add eax, dword [ebx + 0xc]
jmp 0x42665c
mov eax, dword [esi]
jmp 0x426606
mov eax, dword [esi]
jmp 0x426621
mov eax, dword [esi]
jmp 0x426636
xor eax, eax
add dword [ebp + 0x14], eax
test esi, esi
jne 0x42667b
call fcn.0043f4c6
xor eax, eax
cmp ebx, dword [eax + 0x14]
jne 0x426674
call fcn.0043f4c6
mov ebx, dword [ebx]
jmp 0x4265e0
mov eax, dword [esi]
jmp 0x42666a
mov ecx, dword [ebp]
call fcn.00418270
imul eax, eax, 0x7d0
add dword [ebp + 0x14], eax
lea eax, [esp + 0x6c]
push eax
mov ecx, ebp
call fcn.00423230
xor ebx, ebx
cmp eax, ebx
je 0x42672d
lea ecx, [esp + 0x30]
call fcn.0041b7f0
mov ecx, dword [esp + 0x44]
push ecx
call fcn.0043abb0
mov edx, dword [esp + 0x34]
push edx
mov dword [esp + 0x4c], ebx
call fcn.0043abb0
mov ecx, dword [esp + 0x88]
mov eax, dword [ecx]
mov dword [ecx], ecx
mov ecx, dword [esp + 0x88]
mov dword [ecx + 4], ecx
mov ecx, dword [esp + 0x88]
add esp, 8
mov dword [esp + 0x84], ebx
cmp eax, ecx
je 0x426709
mov esi, dword [eax]
push eax
call fcn.0043abb0
mov ecx, dword [esp + 0x84]
add esp, 4
mov eax, esi
cmp esi, ecx
jne 0x4266f1
push ecx
call fcn.0043abb0
mov eax, dword [esp + 0x70]
push eax
mov dword [esp + 0x88], ebx
call fcn.0043abb0
add esp, 8
mov eax, 1
jmp 0x427606
push ebx
lea ecx, [ebp + 0x20]
push 0x49eb64
call fcn.0040d8e0
push 0x48e3ac
push 0x104
lea ecx, [esp + 0xdc]
push ecx
mov byte [esp + 0xe0], 0
call fcn.004201e0
mov dword [esp + 0xcc], ebx
lea edx, [esp + 0xd4]
push edx
push ebx
push ebx
mov byte [esp + 0xa10], 2
call dword [0x48c0cc]
mov edi, dword [0x48c2b8]
mov dword [esp + 0xcc], eax
call edi
mov dword [esp + 0xd0], eax
cmp eax, 0xb7
je 0x4267a6
cmp eax, 5
je 0x4267a6
mov esi, dword [esp + 0xcc]
mov cl, 1
jmp 0x4267ca
mov esi, dword [esp + 0xcc]
cmp esi, ebx
je 0x4267c8
push esi
call dword [0x48c2f8]
mov eax, dword [esp + 0xd0]
xor esi, esi
mov dword [esp + 0xcc], esi
xor cl, cl
xor edx, edx
test cl, cl
sete dl
mov ecx, edx
cmp ecx, ebx
je 0x426838
cmp eax, ebx
jne 0x4267f4
cmp esi, ebx
je 0x4267f4
push esi
call dword [0x48c0c8]
mov eax, dword [esp + 0xcc]
push eax
call dword [0x48c2f8]
lea ecx, [esp + 0x30]
call fcn.0041b7f0
mov ecx, dword [esp + 0x44]
push ecx
call fcn.0043abb0
mov edx, dword [esp + 0x34]
push edx
mov dword [esp + 0x4c], ebx
call fcn.0043abb0
add esp, 8
lea ecx, [esp + 0x6c]
call fcn.004192f0
mov eax, dword [esp + 0x6c]
push eax
call fcn.0043abb0
add esp, 4
mov eax, 0x14
jmp 0x427606
mov dword [esp + 0x18], ebx
mov eax, dword [ebp + 0x18]
push eax
lea ecx, [esp + 0x1c]
mov byte [esp + 0xa08], 3
call fcn.00436560
test al, al
jne 0x4268e7
call edi
push eax
push 0x48e360
call fcn.00414e90
add esp, 8
lea ecx, [esp + 0x18]
mov byte [esp + 0xa04], 2
call fcn.004364d0
cmp dword [esp + 0xd0], ebx
jne 0x4268a3
mov eax, dword [esp + 0xcc]
cmp eax, ebx
je 0x4268a3
push eax
call dword [0x48c0c8]
mov ecx, dword [esp + 0xcc]
push ecx
call dword [0x48c2f8]
lea ecx, [esp + 0x30]
call fcn.0041b7f0
mov edx, dword [esp + 0x44]
push edx
call fcn.0043abb0
mov eax, dword [esp + 0x34]
push eax
mov dword [esp + 0x4c], ebx
call fcn.0043abb0
add esp, 8
lea ecx, [esp + 0x6c]
call fcn.004192f0
mov ecx, dword [esp + 0x6c]
push ecx
call fcn.0043abb0
add esp, 4
mov eax, 2
jmp 0x427606
push 0x48e328
call fcn.00414e90
mov edx, dword [ebp + 0x24]
movzx eax, byte [edx + 1]
mov ecx, dword [ebp]
add esp, 4
push eax
call fcn.00418aa0
mov ecx, dword [ebp]
call fcn.004175e0
mov ecx, dword [esp + 0x44]
fstp dword [esp + 0x24]
mov edi, dword [ecx]
mov esi, dword [esp + 0x30]
lea ebx, [ebx]
mov ebx, dword [esp + 0x44]
test esi, esi
je 0x42692e
cmp esi, dword [esp + 0x30]
je 0x426933
call fcn.0043f4c6
cmp edi, ebx
je 0x426b74
cmp byte [ebp + 8], 0
jne 0x426b74
test esi, esi
jne 0x42698b
call fcn.0043f4c6
xor eax, eax
cmp edi, dword [eax + 0x14]
jne 0x42695a
call fcn.0043f4c6
cmp dword [edi + 0xc], 0
jne 0x426993
test esi, esi
jne 0x42698f
call fcn.0043f4c6
xor eax, eax
cmp edi, dword [eax + 0x14]
jne 0x426975
call fcn.0043f4c6
mov edx, dword [edi + 8]
push edx
push 0x48e2ec
call fcn.00414e90
add esp, 8
jmp 0x426aa6
mov eax, dword [esi]
jmp 0x426950
mov eax, dword [esi]
jmp 0x42696b
test esi, esi
jne 0x426ac2
call fcn.0043f4c6
xor eax, eax
cmp edi, dword [eax + 0x14]
jne 0x4269ac
call fcn.0043f4c6
test esi, esi
jne 0x426ac9
call fcn.0043f4c6
xor eax, eax
cmp edi, dword [eax + 0x14]
jne 0x4269c5
call fcn.0043f4c6
mov eax, dword [edi + 0x1c]
fld dword [edi + 0x18]
push eax
sub esp, 8
fstp dword [esp + 4]
fld dword [esp + 0x30]
fstp dword [esp]
call fcn.0041e1a0
add esp, 0xc
test al, al
je 0x426aa6
test esi, esi
jne 0x426ad0
call fcn.0043f4c6
xor eax, eax
cmp edi, dword [eax + 0x14]
jne 0x426a03
call fcn.0043f4c6
mov ecx, dword [edi + 8]
push ecx
push 0x48e2a0
call fcn.00414e90
add esp, 8
test esi, esi
jne 0x426ad7
call fcn.0043f4c6
xor eax, eax
cmp edi, dword [eax + 0x14]
jne 0x426a2d
call fcn.0043f4c6
mov edx, dword [edi + 8]
push edx
lea eax, [esp + 0x1c]
push eax
mov ecx, ebp
call fcn.00425250
test esi, esi
jne 0x426ade
call fcn.0043f4c6
xor eax, eax
cmp edi, dword [eax + 0x14]
jne 0x426a56
call fcn.0043f4c6
mov ecx, dword [edi + 8]
push ecx
push 0x48e248
call fcn.00414e90
add esp, 8
test esi, esi
jne 0x426ae5
call fcn.0043f4c6
xor eax, eax
cmp edi, dword [eax + 0x14]
jne 0x426a7c
call fcn.0043f4c6
lea edx, [edi + 0x20]
push edx
mov ecx, ebp
call fcn.00423230
test eax, eax
jne 0x426af1
test esi, esi
jne 0x426ae9
call fcn.0043f4c6
xor eax, eax
cmp edi, dword [eax + 0x14]
jne 0x426aa0
call fcn.0043f4c6
mov eax, dword [edi + 0xc]
add dword [ebp + 0x10], eax
test esi, esi
jne 0x426aed
call fcn.0043f4c6
xor eax, eax
cmp edi, dword [eax + 0x14]
jne 0x426abb
call fcn.0043f4c6
mov edi, dword [edi]
jmp 0x426920
mov eax, dword [esi]
jmp 0x4269a2
mov eax, dword [esi]
jmp 0x4269bb
mov eax, dword [esi]
jmp 0x4269f9
mov eax, dword [esi]
jmp 0x426a23
mov eax, dword [esi]
jmp 0x426a4c
mov eax, dword [esi]
jmp 0x426a72
mov eax, dword [esi]
jmp 0x426a96
mov eax, dword [esi]
jmp 0x426ab1
lea ecx, [esp + 0x18]
mov byte [esp + 0xa04], 2
call fcn.004364d0
cmp dword [esp + 0xd0], 0
jne 0x426b2c
mov eax, dword [esp + 0xcc]
test eax, eax
je 0x426b2c
push eax
call dword [0x48c0c8]
mov ecx, dword [esp + 0xcc]
push ecx
call dword [0x48c2f8]
lea ecx, [esp + 0x30]
call fcn.0041b7f0
mov edx, dword [esp + 0x44]
push edx
call fcn.0043abb0
mov eax, dword [esp + 0x34]
push eax
mov dword [esp + 0x4c], 0
call fcn.0043abb0
add esp, 8
lea ecx, [esp + 0x6c]
call fcn.004192f0
mov ecx, dword [esp + 0x6c]
push ecx
call fcn.0043abb0
add esp, 4
mov eax, 3
jmp 0x427606
lea ecx, [esp + 0x18]
call fcn.004364d0
push 4
call fcn.0043ab80
add esp, 4
test eax, eax
je 0x426b96
lea edx, [esp + 0x88]
mov dword [eax], edx
jmp 0x426b98
xor eax, eax
mov dword [esp + 0x88], eax
lea ecx, [esp + 0x88]
mov byte [esp + 0xa04], 4
call fcn.00420d40
mov dword [esp + 0x9c], eax
mov dword [esp + 0xa0], 0
mov ecx, dword [0x4ab1fc]
mov byte [esp + 0xa04], 5
test ecx, ecx
je 0x426f5a
lea eax, [esp + 0x88]
push eax
call fcn.00425cc0
test eax, eax
jle 0x426f5a
push eax
push 0x48e210
call fcn.00414e90
mov ecx, dword [esp + 0xa4]
add esp, 8
xor eax, eax
mov dword [esp + 0xac], eax
mov dword [esp + 0xb0], eax
mov dword [esp + 0xb4], eax
mov dword [esp + 0xb8], eax
mov dword [esp + 0xbc], eax
mov dword [esp + 0xc0], eax
mov dword [esp + 0xc4], eax
mov dword [esp + 0xc8], eax
mov edx, dword [ecx]
mov eax, dword [esp + 0x88]
mov dword [esp + 0x2c], edx
mov dword [esp + 0x28], eax
mov eax, dword [esp + 0x28]
mov esi, dword [esp + 0x9c]
test eax, eax
je 0x426c68
cmp eax, dword [esp + 0x88]
je 0x426c6d
call fcn.0043f4c6
mov ebp, dword [esp + 0x2c]
cmp ebp, esi
je 0x426f5a
mov edx, dword [0x4ab834]
mov eax, dword [edx + 0xc]
mov ecx, 0x4ab834
call eax
lea edi, [eax + 0x10]
mov dword [esp + 0x68], edi
mov edx, dword [0x4ab834]
mov eax, dword [edx + 0xc]
mov ecx, 0x4ab834
mov byte [esp + 0xa04], 6
call eax
lea esi, [eax + 0x10]
mov dword [esp + 0x24], esi
mov ebx, dword [esp + 0x28]
mov byte [esp + 0xa04], 7
test ebx, ebx
jne 0x426d1c
call fcn.0043f4c6
xor eax, eax
cmp ebp, dword [eax + 0x14]
jne 0x426cd0
call fcn.0043f4c6
mov ecx, dword [ebp + 8]
lea eax, [ecx - 0x10]
lea ebp, [edi - 0x10]
cmp eax, ebp
je 0x426d32
cmp dword [ebp + 0xc], 0
lea edi, [ebp + 0xc]
jl 0x426d20
mov edx, dword [eax]
cmp edx, dword [ebp]
jne 0x426d20
push eax
call fcn.0040d1d0
mov ebx, eax
add esp, 4
or eax, 0xffffffff
lock xadd dword [edi], eax
dec eax
test eax, eax
jg 0x426d0f
mov ecx, dword [ebp]
mov edx, dword [ecx]
mov eax, dword [edx + 4]
push ebp
call eax
lea edi, [ebx + 0x10]
mov ebx, dword [esp + 0x28]
mov dword [esp + 0x68], edi
jmp 0x426d32
mov eax, dword [ebx]
jmp 0x426cc6
mov eax, dword [ecx - 0xc]
push eax
push ecx
lea ecx, [esp + 0x70]
call fcn.0040d8e0
mov edi, dword [esp + 0x68]
test ebx, ebx
jne 0x426de7
call fcn.0043f4c6
xor eax, eax
mov ecx, dword [esp + 0x2c]
cmp ecx, dword [eax + 0x14]
jne 0x426d4f
call fcn.0043f4c6
mov ebp, dword [esp + 0x28]
mov edx, dword [esp + 0x2c]
mov eax, dword [esp + 0x9c]
mov ebx, dword [edx]
mov dword [esp + 0xa8], eax
test ebp, ebp
je 0x426d74
cmp ebp, dword [esp + 0x88]
je 0x426d79
call fcn.0043f4c6
cmp ebx, dword [esp + 0xa8]
je 0x426f12
test ebp, ebp
jne 0x426dee
call fcn.0043f4c6
cmp ebx, dword [ebp + 0x14]
jne 0x426d99
call fcn.0043f4c6
mov ecx, dword [ebx + 8]
lea eax, [ecx - 0x10]
lea ebp, [esi - 0x10]
cmp eax, ebp
je 0x426e05
cmp dword [ebp + 0xc], 0
lea esi, [ebp + 0xc]
jl 0x426df3
mov edx, dword [eax]
cmp edx, dword [ebp]
jne 0x426df3
push eax
call fcn.0040d1d0
mov dword [esp + 0x20], eax
add esp, 4
or eax, 0xffffffff
lock xadd dword [esi], eax
dec eax
test eax, eax
jg 0x426dda
mov ecx, dword [ebp]
mov edx, dword [ecx]
mov eax, dword [edx + 4]
push ebp
call eax
mov esi, dword [esp + 0x1c]
add esi, 0x10
mov dword [esp + 0x24], esi
jmp 0x426e05
mov eax, dword [ebx]
jmp 0x426d41
mov ebp, dword [ebp]
jmp 0x426d8f
mov eax, dword [ecx - 0xc]
push eax
push ecx
lea ecx, [esp + 0x2c]
call fcn.0040d8e0
mov esi, dword [esp + 0x24]
mov eax, dword [esp + 0x28]
test eax, eax
jne 0x426e91
call fcn.0043f4c6
xor eax, eax
cmp ebx, dword [eax + 0x14]
jne 0x426e22
call fcn.0043f4c6
mov ecx, dword [ebx]
push 0
lea edx, [esp + 0xb0]
push edx
push edi
mov dword [esp + 0x38], ecx
call fcn.00439560
push 0
lea eax, [esp + 0xcc]
push eax
push esi
call fcn.00439560
push edi
push 0x48e1f4
call fcn.00414e90
push esi
push 0x48e1b8
call fcn.00414e90
lea ecx, [esp + 0xe4]
push ecx
lea edx, [esp + 0xd8]
push edx
call fcn.0043a4c0
add esp, 0x30
test al, al
je 0x426e95
push edi
push 0x48e190
call fcn.00414e90
add esp, 8
push edi
call dword [0x48c0fc]
jmp 0x426ec1
mov eax, dword [eax]
jmp 0x426e18
mov ebp, dword [0x48c100]
push 1
push esi
push edi
call ebp
test eax, eax
jne 0x426ec1
push esi
push 0x48e130
call fcn.00414e90
add esp, 8
push 4
push esi
push edi
call ebp
mov eax, dword [esp + 0x20]
mov byte [eax + 9], 1
lea eax, [esi - 0x10]
mov byte [esp + 0xa04], 6
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x426ee5
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
lea eax, [edi - 0x10]
mov byte [esp + 0xa04], 5
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x426c50
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
jmp 0x426c50
add esi, 0xfffffff0
mov byte [esp + 0xa04], 6
lea ecx, [esi + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x426f36
mov ecx, dword [esi]
mov eax, dword [ecx]
mov edx, dword [eax + 4]
push esi
call edx
add edi, 0xfffffff0
mov byte [esp + 0xa04], 5
lea eax, [edi + 0xc]
or ecx, 0xffffffff
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x426f5a
mov ecx, dword [edi]
mov edx, dword [ecx]
mov eax, dword [edx + 4]
push edi
call eax
push 4
call fcn.0043ab80
add esp, 4
test eax, eax
je 0x426f70
lea ecx, [esp + 0x4c]
mov dword [eax], ecx
jmp 0x426f72
xor eax, eax
mov dword [esp + 0x4c], eax
lea ecx, [esp + 0x4c]
mov byte [esp + 0xa04], 8
call fcn.00418cd0
mov dword [esp + 0x60], eax
mov dword [esp + 0x64], 0
mov ebp, dword [esp + 0x20]
mov ecx, dword [ebp]
lea edx, [esp + 0x4c]
mov bl, 9
push edx
mov byte [esp + 0xa08], bl
call fcn.0041ba10
mov eax, dword [ebp + 0x24]
cmp byte [eax + 1], 0
mov byte [esp + 0x17], 0
je 0x42729d
push 0x48e114
call fcn.00414e90
mov ecx, dword [ebp + 0x24]
add esp, 4
cmp byte [ecx], 0
je 0x426fe6
push 0x48e0f8
call fcn.00414e90
add esp, 4
jmp 0x4273dd
mov ecx, dword [ebp]
lea edx, [esp + 0x1c]
push edx
call fcn.00421670
mov esi, dword [esp + 0x1c]
push 7
push esi
push 0x48e0e8
mov byte [esp + 0xa10], 0xa
call fcn.004401c4
add esp, 0xc
test eax, eax
jne 0x42703a
mov ecx, ebp
call fcn.00421290
mov byte [esp + 0x17], al
test al, al
mov eax, 0x48e0dc
jne 0x42702c
mov eax, 0x48e0d0
push eax
push 0x48e0ac
call fcn.00414e90
add esp, 8
lea eax, [esi - 0x10]
mov byte [esp + 0xa04], bl
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x42705d
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov ecx, dword [esp + 0x60]
mov eax, dword [ecx]
mov edi, dword [esp + 0x4c]
mov ebx, eax
lea esp, [esp]
mov esi, dword [esp + 0x60]
test edi, edi
je 0x42707e
cmp edi, dword [esp + 0x4c]
je 0x427083
call fcn.0043f4c6
cmp ebx, esi
je 0x4270f7
test edi, edi
jne 0x4270ca
call fcn.0043f4c6
xor eax, eax
cmp ebx, dword [eax + 0x14]
jne 0x42709c
call fcn.0043f4c6
lea ecx, [ebx + 0x10]
mov eax, 0x48dfc4
mov dx, word [eax]
cmp dx, word [ecx]
jne 0x4270ce
test dx, dx
je 0x4270c6
mov dx, word [eax + 2]
cmp dx, word [ecx + 2]
jne 0x4270ce
add eax, 4
add ecx, 4
test dx, dx
jne 0x4270a4
xor eax, eax
jmp 0x4270d3
mov eax, dword [edi]
jmp 0x427092
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
je 0x4270f7
test edi, edi
jne 0x4270f3
call fcn.0043f4c6
xor eax, eax
cmp ebx, dword [eax + 0x14]
jne 0x4270ec
call fcn.0043f4c6
mov ebx, dword [ebx]
jmp 0x427070
mov eax, dword [edi]
jmp 0x4270e2
mov esi, dword [esp + 0x60]
test edi, edi
je 0x427105
cmp edi, dword [esp + 0x4c]
je 0x42710a
call fcn.0043f4c6
cmp ebx, esi
je 0x427132
test edi, edi
jne 0x427281
call fcn.0043f4c6
xor eax, eax
cmp ebx, dword [eax + 0x14]
jne 0x427127
call fcn.0043f4c6
add ebx, 8
push ebx
mov ecx, ebp
call fcn.004258e0
cmp byte [esp + 0x17], 0
je 0x42729d
push 0
call dword [0x48c308]
xor edx, edx
push 0x206
mov esi, eax
push edx
lea eax, [esp + 0x7fa]
push eax
mov word [esp + 0x7fc], dx
call fcn.0043f2b0
xor ecx, ecx
push 0x206
push ecx
lea edx, [esp + 0x3f6]
push edx
mov word [esp + 0x3f8], cx
call fcn.0043f2b0
xor eax, eax
push 0x206
push eax
lea ecx, [esp + 0x60a]
push ecx
mov word [esp + 0x60c], ax
call fcn.0043f2b0
xor edx, edx
push 0x206
push edx
lea eax, [esp + 0x206]
push eax
mov word [esp + 0x208], dx
call fcn.0043f2b0
mov ebx, dword [esp + 0x50]
add esp, 0x30
lea ecx, [esp + 0x1c]
push ecx
mov ecx, dword [ebx]
call fcn.004143d0
mov ebp, dword [esp + 0x1c]
push 0x104
lea edx, [esp + 0x1dc]
push ebp
push edx
call fcn.00440443
mov edi, dword [0x48c4a8]
add esp, 0xc
push 0x104
lea eax, [esp + 0x7f4]
push eax
push 0xe9
push esi
call edi
push 0x104
lea ecx, [esp + 0x5ec]
push ecx
push 0xea
push esi
call edi
lea edx, [esp + 0x1d8]
push edx
lea eax, [esp + 0x5ec]
push eax
lea ecx, [esp + 0x3e8]
push ecx
call fcn.004112e0
mov ecx, dword [ebx + 0x24]
add esp, 0xc
push 0x24
lea edx, [esp + 0x3e4]
push edx
mov edx, dword [ecx + 4]
lea eax, [esp + 0x7f8]
push eax
push edx
call dword [0x48c4bc]
or edx, 0xffffffff
cmp eax, 7
lea eax, [ebp - 0x10]
lea ecx, [eax + 0xc]
jne 0x427288
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4273dd
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
jmp 0x4273dd
mov eax, dword [edi]
jmp 0x42711d
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4272aa
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
jmp 0x4272aa
mov ecx, dword [ebp + 0x24]
cmp byte [ecx + 1], 0
jne 0x4273dd
mov edx, dword [esp + 0x60]
mov edi, dword [edx]
mov esi, dword [esp + 0x4c]
mov ebx, dword [esp + 0x20]
mov ebp, dword [esp + 0x60]
test esi, esi
je 0x4272c6
cmp esi, dword [esp + 0x4c]
je 0x4272cb
call fcn.0043f4c6
cmp edi, ebp
je 0x4273c6
cmp byte [esp + 0x17], 0
je 0x427355
test esi, esi
jne 0x427349
call fcn.0043f4c6
xor eax, eax
cmp edi, dword [eax + 0x14]
jne 0x4272ef
call fcn.0043f4c6
lea ebp, [edi + 0x218]
push ebp
push 0x48cf84
call fcn.00440e62
add esp, 8
test eax, eax
je 0x42739e
test esi, esi
jne 0x42734d
call fcn.0043f4c6
xor eax, eax
cmp edi, dword [eax + 0x14]
jne 0x427320
call fcn.0043f4c6
push ebp
push 0x48e094
call fcn.00414e90
add esp, 8
test esi, esi
jne 0x427351
call fcn.0043f4c6
xor eax, eax
cmp edi, dword [eax + 0x14]
jne 0x427343
call fcn.0043f4c6
lea eax, [edi + 8]
push eax
jmp 0x427397
mov eax, dword [esi]
jmp 0x4272e5
mov eax, dword [esi]
jmp 0x427316
mov eax, dword [esi]
jmp 0x427339
test esi, esi
jne 0x4273ba
call fcn.0043f4c6
xor eax, eax
cmp edi, dword [eax + 0x14]
jne 0x42736a
call fcn.0043f4c6
lea ecx, [edi + 0x218]
push ecx
push 0x48e080
call fcn.00414e90
add esp, 8
test esi, esi
jne 0x4273be
call fcn.0043f4c6
xor eax, eax
cmp edi, dword [eax + 0x14]
jne 0x427393
call fcn.0043f4c6
lea edx, [edi + 8]
push edx
mov ecx, ebx
call fcn.00425540
test esi, esi
jne 0x4273c2
call fcn.0043f4c6
xor eax, eax
cmp edi, dword [eax + 0x14]
jne 0x4273b3
call fcn.0043f4c6
mov edi, dword [edi]
jmp 0x4272b8
mov eax, dword [esi]
jmp 0x427360
mov eax, dword [esi]
jmp 0x427389
mov eax, dword [esi]
jmp 0x4273a9
cmp dword [ebx + 0x5c], 0
je 0x4273dd
push 0
push 0
push 0
push 0x8000000
call dword [0x48c3a4]
mov esi, dword [esp + 0x20]
mov ecx, dword [esi]
push 1
lea eax, [esp + 0x70]
push eax
call fcn.0041ba40
lea ecx, [esp + 0x6c]
push ecx
mov ecx, esi
call fcn.00423230
mov ecx, dword [esp + 0x60]
xor edi, edi
cmp eax, edi
mov eax, dword [ecx]
mov dword [ecx], ecx
mov ecx, dword [esp + 0x60]
mov dword [ecx + 4], ecx
mov ecx, dword [esp + 0x60]
mov dword [esp + 0x64], edi
je 0x42754c
cmp eax, ecx
je 0x427435
mov esi, dword [eax]
push eax
call fcn.0043abb0
mov ecx, dword [esp + 0x64]
add esp, 4
mov eax, esi
cmp esi, ecx
jne 0x427420
push ecx
call fcn.0043abb0
mov edx, dword [esp + 0x50]
push edx
mov dword [esp + 0x68], edi
call fcn.0043abb0
add esp, 8
lea ecx, [esp + 0x88]
mov byte [esp + 0xa04], 0xb
call fcn.00423a70
mov eax, dword [esp + 0x9c]
push eax
call fcn.0043abb0
mov ecx, dword [esp + 0x8c]
push ecx
mov dword [esp + 0xa4], edi
call fcn.0043abb0
add esp, 8
lea ecx, [esp + 0x18]
mov byte [esp + 0xa04], 2
call fcn.004364d0
cmp dword [esp + 0xd0], edi
jne 0x4274be
mov eax, dword [esp + 0xcc]
cmp eax, edi
je 0x4274be
push eax
call dword [0x48c0c8]
mov edx, dword [esp + 0xcc]
push edx
call dword [0x48c2f8]
lea ecx, [esp + 0x30]
call fcn.0041b7f0
mov eax, dword [esp + 0x44]
push eax
call fcn.0043abb0
mov ecx, dword [esp + 0x34]
push ecx
mov dword [esp + 0x4c], edi
call fcn.0043abb0
mov ecx, dword [esp + 0x88]
mov eax, dword [ecx]
mov dword [ecx], ecx
mov ecx, dword [esp + 0x88]
mov dword [ecx + 4], ecx
mov ecx, dword [esp + 0x88]
add esp, 8
mov dword [esp + 0x84], edi
cmp eax, ecx
je 0x427528
lea esp, [esp]
mov esi, dword [eax]
push eax
call fcn.0043abb0
mov ecx, dword [esp + 0x84]
add esp, 4
mov eax, esi
cmp esi, ecx
jne 0x427510
push ecx
call fcn.0043abb0
mov edx, dword [esp + 0x70]
push edx
mov dword [esp + 0x88], edi
call fcn.0043abb0
add esp, 8
mov eax, 5
jmp 0x427606
cmp eax, ecx
je 0x427565
mov esi, dword [eax]
push eax
call fcn.0043abb0
mov ecx, dword [esp + 0x64]
add esp, 4
mov eax, esi
cmp esi, ecx
jne 0x427550
push ecx
call fcn.0043abb0
mov eax, dword [esp + 0x50]
push eax
mov dword [esp + 0x68], edi
call fcn.0043abb0
add esp, 8
lea ecx, [esp + 0x88]
mov byte [esp + 0xa04], 3
call fcn.004247e0
lea ecx, [esp + 0x18]
mov byte [esp + 0xa04], 2
call fcn.004364d0
cmp dword [esp + 0xd0], edi
jne 0x4275ca
mov eax, dword [esp + 0xcc]
cmp eax, edi
je 0x4275ca
push eax
call dword [0x48c0c8]
mov ecx, dword [esp + 0xcc]
push ecx
call dword [0x48c2f8]
lea ecx, [esp + 0x30]
call fcn.0041b7f0
mov edx, dword [esp + 0x44]
push edx
call fcn.0043abb0
mov eax, dword [esp + 0x34]
push eax
mov dword [esp + 0x4c], edi
call fcn.0043abb0
add esp, 8
lea ecx, [esp + 0x6c]
call fcn.004192f0
mov ecx, dword [esp + 0x6c]
push ecx
call fcn.0043abb0
add esp, 4
xor eax, eax
mov ecx, dword [esp + 0x9fc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebp
pop ebx
mov ecx, dword [esp + 0x9e4]
xor ecx, esp
call fcn.0043f097
add esp, 0x9f4
ret