Function at 0x440340
Capabilities:
Contain obfuscated stackstrings

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x510a15
mov eax, dword fs:[0]
push eax
sub esp, 0x498
mov eax, dword [0x574be0]
xor eax, ebp
mov dword [ebp - 0x10], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov ebx, ecx
mov dword [ebp - 0x484], ebx
mov ecx, dword [ebp + 0xc]
mov eax, dword [ebp + 8]
mov dword [ebp - 0x4a4], ecx
mov cl, byte [ebp + 0x10]
mov byte [ebp - 0x45d], cl
mov ecx, dword [ebp + 0x14]
mov dword [ebp - 0x468], ecx
push eax
lea ecx, [ebp - 0x450]
mov dword [ebp - 0x494], eax
call fcn.004204a0
mov dword [ebp - 4], 0
mov eax, dword [0x575ba4]
mov ecx, 0x575ba4
call dword [eax + 0xc]
add eax, 0x10
mov dword [ebp - 0x454], eax
mov eax, 0x54f720
mov byte [ebp - 4], 1
test eax, 0xffff0000
jne 0x4403f0
movzx esi, ax
mov ecx, esi
call fcn.0041fcd0
test eax, eax
je 0x440400
push esi
push eax
lea ecx, [ebp - 0x454]
call fcn.00420bb0
jmp 0x440400
push 0x54f720
lea ecx, [ebp - 0x454]
call fcn.00420650
push 0x54f970
lea ecx, [ebp - 0x45c]
mov byte [ebp - 4], 2
call fcn.004204a0
mov byte [ebp - 4], 3
mov eax, dword [0x575ba4]
mov ecx, 0x575ba4
call dword [eax + 0xc]
lea esi, [eax + 0x10]
mov dword [ebp - 0x458], esi
lea eax, [ebp - 0x454]
push eax
lea edx, [ebp - 0x458]
lea ecx, [ebp - 0x478]
mov byte [ebp - 4], 4
call fcn.00421890
lea ecx, [ebp - 0x450]
push ecx
mov edx, eax
lea ecx, [ebp - 0x44c]
mov byte [ebp - 4], 5
call fcn.00421890
add esp, 8
mov byte [ebp - 4], 6
cmp dword [ebx + 8], 0
je 0x440482
push 0
push eax
lea eax, [ebp - 0x45c]
push eax
lea eax, [ebx + 4]
push eax
call fcn.004219a0
mov byte [ebp - 4], 5
mov edx, dword [ebp - 0x44c]
add edx, 0xfffffff0
or ebx, 0xffffffff
lea ecx, [edx + 0xc]
mov eax, ebx
lock xadd dword [ecx], eax
dec eax
test eax, eax
jg 0x4404a8
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov byte [ebp - 4], 4
mov edx, dword [ebp - 0x478]
add edx, 0xfffffff0
mov ecx, ebx
lea eax, [edx + 0xc]
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x4404cb
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
add esi, 0xfffffff0
mov byte [ebp - 4], 3
lea eax, [esi + 0xc]
mov ecx, ebx
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x4404e8
mov ecx, dword [esi]
push esi
mov eax, dword [ecx]
call dword [eax + 4]
mov byte [ebp - 4], 2
mov edx, dword [ebp - 0x45c]
add edx, 0xfffffff0
mov ecx, ebx
lea eax, [edx + 0xc]
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x44050b
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov byte [ebp - 4], 0
mov edx, dword [ebp - 0x454]
add edx, 0xfffffff0
mov ecx, ebx
lea eax, [edx + 0xc]
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x44052e
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov dword [ebp - 4], 0xffffffff
mov edx, dword [ebp - 0x450]
add edx, 0xfffffff0
mov ecx, ebx
lea eax, [edx + 0xc]
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x440554
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
push 0x22c
lea eax, [ebp - 0x444]
push 0
push eax
call fcn.004eff70
add esp, 0xc
mov dword [ebp - 0x444], 0x22c
push 0
push 2
call dword [0x51b1c8]
mov ecx, eax
mov dword [ebp - 0x45c], ecx
cmp ecx, 0xffffffff
jne 0x4407e8
push 0x54f920
lea ecx, [ebp - 0x45c]
call fcn.004204a0
mov dword [ebp - 4], 7
mov eax, dword [0x575ba4]
mov ecx, 0x575ba4
call dword [eax + 0xc]
lea esi, [eax + 0x10]
mov dword [ebp - 0x458], esi
lea eax, [ebp - 0x45c]
push eax
lea edx, [ebp - 0x458]
lea ecx, [ebp - 0x478]
mov byte [ebp - 4], 8
call fcn.00421890
add esp, 4
mov edi, eax
mov byte [ebp - 4], 9
call dword [0x51b0d4]
push eax
mov edx, edi
lea ecx, [ebp - 0x44c]
call fcn.00421800
add esp, 4
mov byte [ebp - 4], 0xa
mov ecx, dword [ebp - 0x468]
push eax
call fcn.004222b0
mov byte [ebp - 4], 9
mov edx, dword [ebp - 0x44c]
add edx, 0xfffffff0
mov ecx, ebx
lea eax, [edx + 0xc]
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x44062b
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov byte [ebp - 4], 8
mov edx, dword [ebp - 0x478]
add edx, 0xfffffff0
mov ecx, ebx
lea eax, [edx + 0xc]
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x44064e
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
add esi, 0xfffffff0
mov byte [ebp - 4], 7
lea eax, [esi + 0xc]
mov ecx, ebx
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x44066b
mov ecx, dword [esi]
push esi
mov eax, dword [ecx]
call dword [eax + 4]
mov dword [ebp - 4], 0xffffffff
mov edx, dword [ebp - 0x45c]
add edx, 0xfffffff0
mov ecx, ebx
lea eax, [edx + 0xc]
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x440691
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov eax, dword [0x575ba4]
mov ecx, 0x575ba4
call dword [eax + 0xc]
add eax, 0x10
mov dword [ebp - 0x454], eax
mov eax, 0x54f900
mov dword [ebp - 4], 0xb
test eax, 0xffff0000
jne 0x4406d7
movzx esi, ax
mov ecx, esi
call fcn.0041fcd0
test eax, eax
je 0x4406e7
push esi
push eax
lea ecx, [ebp - 0x454]
call fcn.00420bb0
jmp 0x4406e7
push 0x54f900
lea ecx, [ebp - 0x454]
call fcn.00420650
push 0x54f970
lea ecx, [ebp - 0x45c]
mov dword [ebp - 4], 0xc
call fcn.004204a0
mov byte [ebp - 4], 0xd
mov eax, dword [0x575ba4]
mov ecx, 0x575ba4
call dword [eax + 0xc]
lea esi, [eax + 0x10]
mov dword [ebp - 0x458], esi
lea eax, [ebp - 0x454]
push eax
lea edx, [ebp - 0x458]
lea ecx, [ebp - 0x468]
mov byte [ebp - 4], 0xe
call fcn.00421890
add esp, 4
mov ecx, dword [ebp - 0x484]
mov byte [ebp - 4], 0xf
cmp dword [ecx + 8], 0
je 0x44075a
push 2
push eax
lea eax, [ebp - 0x45c]
push eax
lea eax, [ecx + 4]
push eax
call fcn.004219a0
mov byte [ebp - 4], 0xe
mov edx, dword [ebp - 0x468]
add edx, 0xfffffff0
mov ecx, ebx
lea eax, [edx + 0xc]
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x44077d
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
add esi, 0xfffffff0
mov byte [ebp - 4], 0xd
lea eax, [esi + 0xc]
mov ecx, ebx
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x44079a
mov ecx, dword [esi]
push esi
mov eax, dword [ecx]
call dword [eax + 4]
mov byte [ebp - 4], 0xc
mov edx, dword [ebp - 0x45c]
add edx, 0xfffffff0
mov ecx, ebx
lea eax, [edx + 0xc]
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x4407bd
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov dword [ebp - 4], 0xffffffff
mov edx, dword [ebp - 0x454]
add edx, 0xfffffff0
lea eax, [edx + 0xc]
lock xadd dword [eax], ebx
dec ebx
test ebx, ebx
jg 0x4407e1
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
xor eax, eax
jmp 0x441a5e
mov dword [ebp - 0x458], 0
mov al, 1
test al, al
lea eax, [ebp - 0x444]
push eax
push ecx
je 0x440808
call dword [0x51b1c0]
jmp 0x44080e
call dword [0x51b1c4]
test eax, eax
je 0x441935
lea eax, [ebp - 0x420]
push 0x5c
push eax
mov byte [ebp - 0x45e], 0
call fcn.004ee5e0
mov esi, eax
add esp, 8
test esi, esi
jne 0x44083c
lea esi, [ebp - 0x420]
jmp 0x44083f
add esi, 2
mov eax, dword [0x575ba4]
mov ecx, 0x575ba4
mov dword [ebp - 0x454], esi
call dword [eax + 0xc]
lea edi, [eax + 0x10]
mov dword [ebp - 0x49c], edi
mov dword [ebp - 4], 0x10
mov eax, dword [0x575ba4]
mov ecx, 0x575ba4
call dword [eax + 0xc]
add eax, 0x10
mov dword [ebp - 0x470], eax
mov eax, dword [ebp - 0x494]
mov byte [ebp - 4], 0x11
test eax, eax
je 0x4408cd
test eax, 0xffff0000
jne 0x4408b1
movzx ecx, ax
call fcn.0041fcd0
test eax, eax
je 0x4408dc
mov edx, dword [ebp - 0x494]
movzx ecx, dx
push ecx
push eax
lea ecx, [ebp - 0x470]
call fcn.00420bb0
jmp 0x4408dc
mov ecx, eax
lea edx, [ecx + 2]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x4408b6
mov eax, dword [ebp - 0x494]
sub ecx, edx
sar ecx, 1
jmp 0x4408cf
xor ecx, ecx
push ecx
push eax
lea ecx, [ebp - 0x470]
call fcn.00420c80
push 0x54e18c
push 0x54ef3c
lea ecx, [ebp - 0x470]
mov byte [ebp - 4], 0x12
call fcn.00421ef0
cmp byte [ebp - 0x45d], 0
je 0x440bdd
test esi, esi
mov esi, dword [ebp - 0x470]
je 0x440aee
cmp dword [esi - 0xc], 0
jl 0x440aee
push dword [ebp - 0x454]
push esi
call fcn.004ebb6d
add esp, 8
test eax, eax
je 0x440aee
sub eax, esi
sar eax, 1
cmp eax, 0xffffffff
je 0x440aee
mov eax, dword [0x575ba4]
mov ecx, 0x575ba4
call dword [eax + 0xc]
add eax, 0x10
mov dword [ebp - 0x450], eax
mov eax, 0x54f9b0
mov byte [ebp - 4], 0x13
test eax, 0xffff0000
jne 0x440981
movzx ebx, ax
mov ecx, ebx
call fcn.0041fcd0
test eax, eax
je 0x440991
push ebx
push eax
lea ecx, [ebp - 0x450]
call fcn.00420bb0
jmp 0x440991
push 0x54f9b0
lea ecx, [ebp - 0x450]
call fcn.00420650
push 0x54f970
lea ecx, [ebp - 0x47c]
mov byte [ebp - 4], 0x14
call fcn.004204a0
mov byte [ebp - 4], 0x15
mov eax, dword [0x575ba4]
mov ecx, 0x575ba4
call dword [eax + 0xc]
lea ebx, [eax + 0x10]
mov dword [ebp - 0x448], ebx
lea eax, [ebp - 0x450]
push eax
lea edx, [ebp - 0x448]
lea ecx, [ebp - 0x44c]
mov byte [ebp - 4], 0x16
call fcn.00421890
add esp, 4
mov ecx, dword [ebp - 0x484]
mov byte [ebp - 4], 0x17
cmp dword [ecx + 8], 0
je 0x440a01
push 0
push eax
lea eax, [ebp - 0x47c]
push eax
lea eax, [ecx + 4]
push eax
call fcn.004219a0
mov byte [ebp - 4], 0x16
mov edx, dword [ebp - 0x44c]
add edx, 0xfffffff0
or ecx, 0xffffffff
lea eax, [edx + 0xc]
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x440a25
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
lea edx, [ebx - 0x10]
or ebx, 0xffffffff
mov byte [ebp - 4], 0x15
lea eax, [edx + 0xc]
mov ecx, ebx
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x440a45
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov byte [ebp - 4], 0x14
mov edx, dword [ebp - 0x47c]
add edx, 0xfffffff0
mov ecx, ebx
lea eax, [edx + 0xc]
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x440a68
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov byte [ebp - 4], 0x12
mov edx, dword [ebp - 0x450]
add edx, 0xfffffff0
mov ecx, ebx
lea eax, [edx + 0xc]
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x440a8b
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
push dword [ebp - 0x43c]
push 0
push 0x410
call dword [0x51b1b8]
mov dword [ebp - 0x448], eax
test eax, eax
je 0x440aee
push 0x104
lea ecx, [ebp - 0x218]
push ecx
push 0
push eax
call dword [0x51b338]
test eax, eax
je 0x440ae2
lea eax, [ebp - 0x218]
push eax
lea eax, [ebp - 0x49c]
push 0x54d5c8
push eax
call fcn.00421610
mov edi, dword [ebp - 0x49c]
add esp, 0xc
push dword [ebp - 0x448]
call dword [0x51b104]
mov edx, dword [edi - 0xc]
mov dword [ebp - 0x450], edx
test edx, edx
js 0x440c54
mov eax, dword [edi - 8]
mov ecx, 1
sub ecx, dword [edi - 4]
sub eax, edx
or eax, ecx
jge 0x440b28
push edx
lea ecx, [ebp - 0x49c]
call fcn.004206e0
mov edi, dword [ebp - 0x49c]
mov edx, dword [ebp - 0x450]
lea eax, [edx + 1]
push eax
push edi
call fcn.004ee372
mov eax, dword [ebp - 0x450]
add esp, 8
cmp eax, dword [edi - 8]
jg 0x440c54
xor ecx, ecx
mov dword [edi - 0xc], eax
mov word [edi + eax*2], cx
mov edx, dword [esi - 0xc]
mov dword [ebp - 0x450], edx
test edx, edx
js 0x440c54
mov eax, dword [esi - 8]
mov ecx, 1
sub ecx, dword [esi - 4]
sub eax, edx
or eax, ecx
jge 0x440b87
push edx
lea ecx, [ebp - 0x470]
call fcn.004206e0
mov esi, dword [ebp - 0x470]
mov edx, dword [ebp - 0x450]
lea eax, [edx + 1]
push eax
push esi
call fcn.004ee372
mov eax, dword [ebp - 0x450]
add esp, 8
cmp eax, dword [esi - 8]
jg 0x440c54
xor ecx, ecx
mov dword [esi - 0xc], eax
mov word [esi + eax*2], cx
mov ecx, esi
mov eax, edi
mov dx, word [eax]
cmp dx, word [ecx]
jne 0x440bd6
test dx, dx
je 0x440bd2
mov dx, word [eax + 2]
cmp dx, word [ecx + 2]
jne 0x440bd6
add eax, 4
add ecx, 4
test dx, dx
jne 0x440bb0
xor eax, eax
jmp 0x440bf2
sbb eax, eax
or eax, 1
jmp 0x440bf2
push dword [ebp - 0x494]
push esi
call fcn.004ed283
mov esi, dword [ebp - 0x470]
add esp, 8
test eax, eax
je 0x440c5e
add esi, 0xfffffff0
mov byte [ebp - 4], 0x10
lea eax, [esi + 0xc]
mov ecx, ebx
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x440c13
mov ecx, dword [esi]
push esi
mov eax, dword [ecx]
call dword [eax + 4]
add edi, 0xfffffff0
mov dword [ebp - 4], 0xffffffff
lea eax, [edi + 0xc]
mov ecx, ebx
lock xadd dword [eax], ecx
dec ecx
mov al, byte [ebp - 0x45e]
test ecx, ecx
mov ecx, dword [ebp - 0x45c]
jg 0x4407f4
mov ecx, dword [edi]
push edi
mov eax, dword [ecx]
call dword [eax + 4]
mov al, byte [ebp - 0x45e]
mov ecx, dword [ebp - 0x45c]
jmp 0x4407f4
push 0x80070057
call fcn.0041fba0
push dword [ebp - 0x454]
lea ecx, [ebp - 0x480]
call fcn.004204a0
push 0x54f8d8
lea ecx, [ebp - 0x450]
mov byte [ebp - 4], 0x18
call fcn.00420550
push 0x54f970
lea ecx, [ebp - 0x47c]
mov byte [ebp - 4], 0x19
call fcn.004204a0
mov byte [ebp - 4], 0x1a
mov eax, dword [0x575ba4]
mov ecx, 0x575ba4
call dword [eax + 0xc]
lea ebx, [eax + 0x10]
mov dword [ebp - 0x458], ebx
lea eax, [ebp - 0x450]
push eax
lea edx, [ebp - 0x458]
lea ecx, [ebp - 0x44c]
mov byte [ebp - 4], 0x1b
call fcn.00421890
lea ecx, [ebp - 0x480]
push ecx
mov edx, eax
lea ecx, [ebp - 0x448]
mov byte [ebp - 4], 0x1c
call fcn.00421890
add esp, 8
mov ecx, dword [ebp - 0x484]
mov byte [ebp - 4], 0x1d
cmp dword [ecx + 8], 0
je 0x440d0b
push 0
push eax
lea eax, [ebp - 0x47c]
push eax
lea eax, [ecx + 4]
push eax
call fcn.004219a0
mov byte [ebp - 4], 0x1c
mov edx, dword [ebp - 0x448]
add edx, 0xfffffff0
or ecx, 0xffffffff
lea eax, [edx + 0xc]
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x440d2f
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov byte [ebp - 4], 0x1b
mov edx, dword [ebp - 0x44c]
add edx, 0xfffffff0
or ecx, 0xffffffff
lea eax, [edx + 0xc]
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x440d53
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
lea edx, [ebx - 0x10]
or ebx, 0xffffffff
mov byte [ebp - 4], 0x1a
lea eax, [edx + 0xc]
mov ecx, ebx
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x440d73
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov byte [ebp - 4], 0x19
mov edx, dword [ebp - 0x47c]
add edx, 0xfffffff0
mov ecx, ebx
lea eax, [edx + 0xc]
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x440d96
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov byte [ebp - 4], 0x18
mov edx, dword [ebp - 0x450]
add edx, 0xfffffff0
mov ecx, ebx
lea eax, [edx + 0xc]
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x440db9
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov byte [ebp - 4], 0x12
mov edx, dword [ebp - 0x480]
add edx, 0xfffffff0
mov ecx, ebx
lea eax, [edx + 0xc]
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x440ddc
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
push 0x54f98c
lea ecx, [ebp - 0x448]
call fcn.004204a0
push 0x54f9dc
lea ecx, [ebp - 0x44c]
mov byte [ebp - 4], 0x1e
call fcn.004204a0
push 0x54f9c0
lea ecx, [ebp - 0x478]
mov byte [ebp - 4], 0x1f
call fcn.004204a0
push dword [ebp - 0x494]
lea ecx, [ebp - 0x450]
mov byte [ebp - 4], 0x20
call fcn.004204a0
push 0x54fa14
lea ecx, [ebp - 0x47c]
mov byte [ebp - 4], 0x21
call fcn.00420550
push 0x54f970
lea ecx, [ebp - 0x480]
mov byte [ebp - 4], 0x22
call fcn.004204a0
mov byte [ebp - 4], 0x23
mov eax, dword [0x575ba4]
mov ecx, 0x575ba4
call dword [eax + 0xc]
lea ebx, [eax + 0x10]
mov dword [ebp - 0x458], ebx
lea eax, [ebp - 0x47c]
push eax
lea edx, [ebp - 0x458]
lea ecx, [ebp - 0x464]
mov byte [ebp - 4], 0x24
call fcn.00421890
lea ecx, [ebp - 0x450]
push ecx
mov edx, eax
lea ecx, [ebp - 0x474]
mov byte [ebp - 4], 0x25
call fcn.00421890
lea ecx, [ebp - 0x478]
push ecx
mov edx, eax
lea ecx, [ebp - 0x46c]
mov byte [ebp - 4], 0x26
call fcn.00421890
movzx ecx, byte [ebp - 0x45d]
push ecx
mov edx, eax
lea ecx, [ebp - 0x490]
mov byte [ebp - 4], 0x27
call fcn.00421800
lea ecx, [ebp - 0x44c]
push ecx
mov edx, eax
lea ecx, [ebp - 0x488]
mov byte [ebp - 4], 0x28
call fcn.00421890
lea ecx, [ebp - 0x49c]
push ecx
mov edx, eax
lea ecx, [ebp - 0x4a0]
mov byte [ebp - 4], 0x29
call fcn.00421890
lea ecx, [ebp - 0x448]
mov byte [ebp - 4], 0x2a
push ecx
mov edx, eax
lea ecx, [ebp - 0x48c]
call fcn.00421890
lea ecx, [ebp - 0x470]
push ecx
mov edx, eax
lea ecx, [ebp - 0x498]
mov byte [ebp - 4], 0x2b
call fcn.00421890
add esp, 0x20
mov ecx, dword [ebp - 0x484]
mov byte [ebp - 4], 0x2c
cmp dword [ecx + 8], 0
je 0x440f56
push 0
push eax
lea eax, [ebp - 0x480]
push eax
lea eax, [ecx + 4]
push eax
call fcn.004219a0
mov byte [ebp - 4], 0x2b
mov edx, dword [ebp - 0x498]
add edx, 0xfffffff0
or ecx, 0xffffffff
lea eax, [edx + 0xc]
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x440f7a
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov byte [ebp - 4], 0x2a
mov edx, dword [ebp - 0x48c]
add edx, 0xfffffff0
or ecx, 0xffffffff
lea eax, [edx + 0xc]
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x440f9e
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov byte [ebp - 4], 0x29
mov edx, dword [ebp - 0x4a0]
add edx, 0xfffffff0
or ecx, 0xffffffff
lea eax, [edx + 0xc]
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x440fc2
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov byte [ebp - 4], 0x28
mov edx, dword [ebp - 0x488]
add edx, 0xfffffff0
or ecx, 0xffffffff
lea eax, [edx + 0xc]
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x440fe6
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov byte [ebp - 4], 0x27
mov edx, dword [ebp - 0x490]
add edx, 0xfffffff0
or ecx, 0xffffffff
lea eax, [edx + 0xc]
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x44100a
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov byte [ebp - 4], 0x26
mov edx, dword [ebp - 0x46c]
add edx, 0xfffffff0
or ecx, 0xffffffff
lea eax, [edx + 0xc]
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x44102e
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov byte [ebp - 4], 0x25
mov edx, dword [ebp - 0x474]
add edx, 0xfffffff0
or ecx, 0xffffffff
lea eax, [edx + 0xc]
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x441052
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov byte [ebp - 4], 0x24
mov edx, dword [ebp - 0x464]
add edx, 0xfffffff0
or ecx, 0xffffffff
lea eax, [edx + 0xc]
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x441076
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
lea edx, [ebx - 0x10]
or ebx, 0xffffffff
mov byte [ebp - 4], 0x23
lea eax, [edx + 0xc]
mov ecx, ebx
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x441096
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov byte [ebp - 4], 0x22
mov edx, dword [ebp - 0x480]
add edx, 0xfffffff0
mov ecx, ebx
lea eax, [edx + 0xc]
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x4410b9
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov byte [ebp - 4], 0x21
mov edx, dword [ebp - 0x47c]
add edx, 0xfffffff0
mov ecx, ebx
lea eax, [edx + 0xc]
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x4410dc
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov byte [ebp - 4], 0x20
mov edx, dword [ebp - 0x450]
add edx, 0xfffffff0
mov ecx, ebx
lea eax, [edx + 0xc]
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x4410ff
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov byte [ebp - 4], 0x1f
mov edx, dword [ebp - 0x478]
add edx, 0xfffffff0
mov ecx, ebx
lea eax, [edx + 0xc]
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x441122
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov byte [ebp - 4], 0x1e
mov edx, dword [ebp - 0x44c]
add edx, 0xfffffff0
mov ecx, ebx
lea eax, [edx + 0xc]
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x441145
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov byte [ebp - 4], 0x12
mov edx, dword [ebp - 0x448]
add edx, 0xfffffff0
mov ecx, ebx
lea eax, [edx + 0xc]
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x441168
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
push 0x54f9f8
lea ecx, [ebp - 0x44c]
call fcn.00420550
push 0x54f970
lea ecx, [ebp - 0x448]
mov byte [ebp - 4], 0x2d
call fcn.004204a0
mov byte [ebp - 4], 0x2e
mov eax, dword [0x575ba4]
mov ecx, 0x575ba4
call dword [eax + 0xc]
lea ebx, [eax + 0x10]
mov dword [ebp - 0x464], ebx
lea eax, [ebp - 0x44c]
push eax
lea edx, [ebp - 0x464]
lea ecx, [ebp - 0x46c]
mov byte [ebp - 4], 0x2f
call fcn.00421890
mov byte [ebp - 4], 0x30
push dword [ebp - 0x43c]
mov edx, eax
lea ecx, [ebp - 0x474]
call fcn.00421800
add esp, 8
mov ecx, dword [ebp - 0x484]
mov byte [ebp - 4], 0x31
cmp dword [ecx + 8], 0
je 0x4411ff
push 0
push eax
lea eax, [ebp - 0x448]
push eax
lea eax, [ecx + 4]
push eax
call fcn.004219a0
mov byte [ebp - 4], 0x30
mov edx, dword [ebp - 0x474]
add edx, 0xfffffff0
or ecx, 0xffffffff
lea eax, [edx + 0xc]
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x441223
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov byte [ebp - 4], 0x2f
mov edx, dword [ebp - 0x46c]
add edx, 0xfffffff0
or ecx, 0xffffffff
lea eax, [edx + 0xc]
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x441247
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
lea edx, [ebx - 0x10]
or ebx, 0xffffffff
mov byte [ebp - 4], 0x2e
lea eax, [edx + 0xc]
mov ecx, ebx
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x441267
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov byte [ebp - 4], 0x2d
mov edx, dword [ebp - 0x448]
add edx, 0xfffffff0
mov ecx, ebx
lea eax, [edx + 0xc]
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x44128a
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov byte [ebp - 4], 0x12
mov edx, dword [ebp - 0x44c]
add edx, 0xfffffff0
mov ecx, ebx
lea eax, [edx + 0xc]
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x4412ad
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
push dword [ebp - 0x43c]
push 1
push 0x100001
call dword [0x51b1b8]
mov dword [ebp - 0x458], eax
test eax, eax
jne 0x44176c
call dword [0x51b0d4]
mov dword [ebp - 0x474], eax
test eax, eax
jg 0x4412e8
mov ebx, eax
mov dword [ebp - 0x478], eax
jmp 0x4412f7
movzx ebx, ax
or ebx, 0x80070000
mov dword [ebp - 0x478], ebx
push 0x54c734
lea ecx, [ebp - 0x44c]
call fcn.004204a0
push 0x54fa48
lea ecx, [ebp - 0x448]
mov byte [ebp - 4], 0x32
call fcn.004204a0
mov edx, ebx
lea ecx, [ebp - 0x498]
mov byte [ebp - 4], 0x33
call fcn.00421920
mov dword [ebp - 0x46c], eax
mov byte [ebp - 4], 0x34
mov edx, dword [0x575ba4]
mov ecx, 0x575ba4
call dword [edx + 0xc]
lea ebx, [eax + 0x10]
mov dword [ebp - 0x464], ebx
lea eax, [ebp - 0x448]
push eax
lea edx, [ebp - 0x464]
lea ecx, [ebp - 0x48c]
mov byte [ebp - 4], 0x35
call fcn.00421890
mov byte [ebp - 4], 0x36
push dword [ebp - 0x474]
mov edx, eax
lea ecx, [ebp - 0x4a0]
call fcn.00421800
lea ecx, [ebp - 0x44c]
push ecx
mov edx, eax
lea ecx, [ebp - 0x488]
mov byte [ebp - 4], 0x37
call fcn.00421890
mov byte [ebp - 4], 0x38
push dword [ebp - 0x46c]
mov edx, eax
lea ecx, [ebp - 0x490]
call fcn.00421890
add esp, 0x10
mov byte [ebp - 4], 0x39
mov ecx, dword [ebp - 0x468]
push eax
call fcn.004222b0
mov byte [ebp - 4], 0x38
mov edx, dword [ebp - 0x490]
add edx, 0xfffffff0
or ecx, 0xffffffff
lea eax, [edx + 0xc]
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x4413e6
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov byte [ebp - 4], 0x37
mov edx, dword [ebp - 0x488]
add edx, 0xfffffff0
or ecx, 0xffffffff
lea eax, [edx + 0xc]
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x44140a
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov byte [ebp - 4], 0x36
mov edx, dword [ebp - 0x4a0]
add edx, 0xfffffff0
or ecx, 0xffffffff
lea eax, [edx + 0xc]
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x44142e
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov byte [ebp - 4], 0x35
mov edx, dword [ebp - 0x48c]
add edx, 0xfffffff0
or ecx, 0xffffffff
lea eax, [edx + 0xc]
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x441452
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
lea edx, [ebx - 0x10]
or ebx, 0xffffffff
mov byte [ebp - 4], 0x34
lea eax, [edx + 0xc]
mov ecx, ebx
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x441472
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov byte [ebp - 4], 0x33
mov edx, dword [ebp - 0x498]
add edx, 0xfffffff0
mov ecx, ebx
lea eax, [edx + 0xc]
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x441495
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov byte [ebp - 4], 0x32
mov edx, dword [ebp - 0x448]
add edx, 0xfffffff0
mov ecx, ebx
lea eax, [edx + 0xc]
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x4414b8
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov byte [ebp - 4], 0x12
mov edx, dword [ebp - 0x44c]
add edx, 0xfffffff0
mov ecx, ebx
lea eax, [edx + 0xc]
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x4414db
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
push 0x54f6f0
lea ecx, [ebp - 0x480]
call fcn.00420550
mov byte [ebp - 4], 0x3a
push dword [ebp - 0x454]
lea ecx, [ebp - 0x44c]
call fcn.004204a0
push 0x54fa28
lea ecx, [ebp - 0x448]
mov byte [ebp - 4], 0x3b
call fcn.00420550
push 0x54f970
lea ecx, [ebp - 0x468]
mov byte [ebp - 4], 0x3c
call fcn.004204a0
mov byte [ebp - 4], 0x3d
mov edx, dword [ebp - 0x478]
lea ecx, [ebp - 0x498]
call fcn.00421920
mov dword [ebp - 0x474], eax
mov byte [ebp - 4], 0x3e
mov edx, dword [0x575ba4]
mov ecx, 0x575ba4
call dword [edx + 0xc]
lea ebx, [eax + 0x10]
mov dword [ebp - 0x464], ebx
lea eax, [ebp - 0x448]
push eax
lea edx, [ebp - 0x464]
lea ecx, [ebp - 0x48c]
mov byte [ebp - 4], 0x3f
call fcn.00421890
lea ecx, [ebp - 0x44c]
push ecx
mov edx, eax
lea ecx, [ebp - 0x4a0]
mov byte [ebp - 4], 0x40
call fcn.00421890
push 0x57c250
mov edx, eax
lea ecx, [ebp - 0x488]
mov byte [ebp - 4], 0x41
call fcn.00421890
lea ecx, [ebp - 0x480]
push ecx
mov edx, eax
lea ecx, [ebp - 0x490]
mov byte [ebp - 4], 0x42
call fcn.00421890
mov byte [ebp - 4], 0x43
push dword [ebp - 0x474]
mov edx, eax
lea ecx, [ebp - 0x46c]
call fcn.00421890
add esp, 0x14
mov ecx, dword [ebp - 0x484]
mov byte [ebp - 4], 0x44
cmp dword [ecx + 8], 0
je 0x4415fd
push 2
push eax
lea eax, [ebp - 0x468]
push eax
lea eax, [ecx + 4]
push eax
call fcn.004219a0
mov byte [ebp - 4], 0x43
mov edx, dword [ebp - 0x46c]
add edx, 0xfffffff0
or ecx, 0xffffffff
lea eax, [edx + 0xc]
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x441621
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov byte [ebp - 4], 0x42
mov edx, dword [ebp - 0x490]
add edx, 0xfffffff0
or ecx, 0xffffffff
lea eax, [edx + 0xc]
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x441645
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov byte [ebp - 4], 0x41
mov edx, dword [ebp - 0x488]
add edx, 0xfffffff0
or ecx, 0xffffffff
lea eax, [edx + 0xc]
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x441669
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov byte [ebp - 4], 0x40
mov edx, dword [ebp - 0x4a0]
add edx, 0xfffffff0
or ecx, 0xffffffff
lea eax, [edx + 0xc]
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x44168d
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov byte [ebp - 4], 0x3f
mov edx, dword [ebp - 0x48c]
add edx, 0xfffffff0
or ecx, 0xffffffff
lea eax, [edx + 0xc]
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x4416b1
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
lea edx, [ebx - 0x10]
or ebx, 0xffffffff
mov byte [ebp - 4], 0x3e
lea eax, [edx + 0xc]
mov ecx, ebx
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x4416d1
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov byte [ebp - 4], 0x3d
mov edx, dword [ebp - 0x498]
add edx, 0xfffffff0
mov ecx, ebx
lea eax, [edx + 0xc]
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x4416f4
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov byte [ebp - 4], 0x3c
mov edx, dword [ebp - 0x468]
add edx, 0xfffffff0
mov ecx, ebx
lea eax, [edx + 0xc]
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x441717
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov byte [ebp - 4], 0x3b
mov edx, dword [ebp - 0x448]
add edx, 0xfffffff0
mov ecx, ebx
lea eax, [edx + 0xc]
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x44173a
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov byte [ebp - 4], 0x3a
mov edx, dword [ebp - 0x44c]
add edx, 0xfffffff0
mov ecx, ebx
lea eax, [edx + 0xc]
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x44175d
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov byte [ebp - 4], 0x12
mov edx, dword [ebp - 0x480]
jmp 0x4418d1
push dword [ebp - 0x454]
lea ecx, [ebp - 0x44c]
call fcn.004204a0
push 0x54fa9c
lea ecx, [ebp - 0x448]
mov byte [ebp - 4], 0x45
call fcn.00420550
push 0x54f970
lea ecx, [ebp - 0x468]
mov byte [ebp - 4], 0x46
call fcn.004204a0
mov byte [ebp - 4], 0x47
mov eax, dword [0x575ba4]
mov ecx, 0x575ba4
call dword [eax + 0xc]
lea ebx, [eax + 0x10]
mov dword [ebp - 0x464], ebx
lea eax, [ebp - 0x448]
push eax
lea edx, [ebp - 0x464]
lea ecx, [ebp - 0x46c]
mov byte [ebp - 4], 0x48
call fcn.00421890
lea ecx, [ebp - 0x44c]
push ecx
mov edx, eax
lea ecx, [ebp - 0x474]
mov byte [ebp - 4], 0x49
call fcn.00421890
add esp, 8
mov ecx, dword [ebp - 0x484]
mov byte [ebp - 4], 0x4a
cmp dword [ecx + 8], 0
je 0x441819
push 0
push eax
lea eax, [ebp - 0x468]
push eax
lea eax, [ecx + 4]
push eax
call fcn.004219a0
mov byte [ebp - 4], 0x49
mov edx, dword [ebp - 0x474]
add edx, 0xfffffff0
or ecx, 0xffffffff
lea eax, [edx + 0xc]
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x44183d
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov byte [ebp - 4], 0x48
mov edx, dword [ebp - 0x46c]
add edx, 0xfffffff0
or ecx, 0xffffffff
lea eax, [edx + 0xc]
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x441861
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
lea edx, [ebx - 0x10]
or ebx, 0xffffffff
mov byte [ebp - 4], 0x47
lea eax, [edx + 0xc]
mov ecx, ebx
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x441881
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov byte [ebp - 4], 0x46
mov edx, dword [ebp - 0x468]
add edx, 0xfffffff0
mov ecx, ebx
lea eax, [edx + 0xc]
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x4418a4
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov byte [ebp - 4], 0x45
mov edx, dword [ebp - 0x448]
add edx, 0xfffffff0
mov ecx, ebx
lea eax, [edx + 0xc]
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x4418c7
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov byte [ebp - 4], 0x12
mov edx, dword [ebp - 0x44c]
add edx, 0xfffffff0
mov ecx, ebx
lea eax, [edx + 0xc]
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x4418ea
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov ecx, dword [ebp - 0x4a4]
mov eax, dword [ebp - 0x43c]
add esi, 0xfffffff0
mov dword [ecx], eax
mov byte [ebp - 4], 0x10
lea eax, [esi + 0xc]
mov ecx, ebx
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x441915
mov ecx, dword [esi]
push esi
mov eax, dword [ecx]
call dword [eax + 4]
add edi, 0xfffffff0
mov dword [ebp - 4], 0xffffffff
lea eax, [edi + 0xc]
mov ecx, ebx
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x441935
mov ecx, dword [edi]
push edi
mov eax, dword [ecx]
call dword [eax + 4]
mov eax, dword [ebp - 0x45c]
test eax, eax
je 0x441946
push eax
call dword [0x51b104]
mov edi, dword [ebp - 0x458]
test edi, edi
jne 0x441a5c
push 0x54fa80
lea ecx, [ebp - 0x448]
call fcn.00420550
push 0x54f970
lea ecx, [ebp - 0x458]
mov dword [ebp - 4], 0x4b
call fcn.004204a0
mov byte [ebp - 4], 0x4c
mov eax, dword [0x575ba4]
mov ecx, 0x575ba4
call dword [eax + 0xc]
lea esi, [eax + 0x10]
mov dword [ebp - 0x4a4], esi
lea eax, [ebp - 0x448]
push eax
lea edx, [ebp - 0x4a4]
lea ecx, [ebp - 0x464]
mov byte [ebp - 4], 0x4d
call fcn.00421890
add esp, 4
mov ecx, dword [ebp - 0x484]
mov byte [ebp - 4], 0x4e
cmp dword [ecx + 8], edi
je 0x4419d5
push edi
push eax
lea eax, [ebp - 0x458]
push eax
lea eax, [ecx + 4]
push eax
call fcn.004219a0
mov byte [ebp - 4], 0x4d
mov edx, dword [ebp - 0x464]
add edx, 0xfffffff0
mov ecx, ebx
lea eax, [edx + 0xc]
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x4419f8
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
add esi, 0xfffffff0
mov byte [ebp - 4], 0x4c
lea eax, [esi + 0xc]
mov ecx, ebx
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x441a15
mov ecx, dword [esi]
push esi
mov eax, dword [ecx]
call dword [eax + 4]
mov byte [ebp - 4], 0x4b
mov edx, dword [ebp - 0x458]
add edx, 0xfffffff0
mov ecx, ebx
lea eax, [edx + 0xc]
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x441a38
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov dword [ebp - 4], 0xffffffff
mov edx, dword [ebp - 0x448]
add edx, 0xfffffff0
lea eax, [edx + 0xc]
lock xadd dword [eax], ebx
dec ebx
test ebx, ebx
jg 0x441a5c
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov eax, edi
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.004e9fca
mov esp, ebp
pop ebp
ret 0x10