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

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x528e50
mov eax, dword fs:[0]
push eax
sub esp, 0xc8
mov eax, dword [0x590cc0]
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 esi, dword [ebp + 0x10]
mov edx, dword [ebp + 8]
mov eax, dword [ebp + 0xc]
xor edi, edi
mov dword [ebp - 0x58], esi
mov esi, 1
add dword [ecx + 0x14], esi
mov dword [edx], edi
mov dword [edx + 4], edi
mov dword [ebp - 0x64], ecx
mov dword [ebp - 0xc0], edx
mov dword [ebp - 0x5c], eax
mov dword [ebp - 0x20], edi
mov dword [ebp - 0x1c], edi
mov dword [ebp - 0x18], edi
mov dword [ebp - 0x14], edi
cmp dword [ecx + 0x128], esi
jne 0x4440ad
push eax
lea eax, [ebp - 0xd4]
push eax
call fcn.0043f2b0
mov ecx, dword [eax]
mov edx, dword [eax + 4]
xor esi, esi
xor ebx, ebx
mov dword [ebp - 0xc8], ecx
mov dword [ebp - 0xc4], edx
mov dword [ebp - 0xb8], edi
mov dword [ebp - 0xb4], esi
mov dword [ebp - 0xb0], edi
mov dword [ebp - 0xa8], edi
mov dword [ebp - 0xa4], edi
mov dword [ebp - 0xa0], edi
mov dword [ebp - 0x98], edi
mov dword [ebp - 0x94], ebx
mov dword [ebp - 0x90], edi
mov dword [ebp - 0x88], edi
mov dword [ebp - 0x84], edi
mov dword [ebp - 0x80], edi
mov dword [ebp - 4], edi
mov dword [ebp - 0x38], edi
mov dword [ebp - 0x3c], edi
mov dword [ebp - 0x28], edi
mov dword [ebp - 0x2c], edi
mov dword [ebp - 0x30], edi
mov dword [ebp - 0x34], edi
mov dword [ebp - 0x24], edi
mov dword [ebp - 0x74], edi
mov dword [ebp - 0x70], edi
mov dword [ebp - 0x6c], edi
mov byte [ebp - 4], 1
mov dword [ebp - 0x48], edi
cmp ecx, edi
jle 0x443dc9
mov ecx, dword [ebp - 0x70]
mov esi, dword [ebp - 0x6c]
mov ebx, dword [ebp - 0x74]
lea eax, [ebp - 0x3c]
cmp eax, ecx
jae 0x443b48
mov edx, eax
cmp ebx, edx
ja 0x443b48
mov ecx, eax
sub ecx, ebx
mov eax, 0x92492493
imul ecx
add edx, ecx
mov ecx, dword [ebp - 0x70]
sar edx, 4
mov edi, edx
shr edi, 0x1f
add edi, edx
cmp ecx, esi
jne 0x443b22
sub ecx, ebx
mov eax, 0x92492493
imul ecx
add edx, ecx
sar edx, 4
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
cmp ecx, 0x9249248
ja 0x443e34
sub esi, ebx
mov eax, 0x92492493
imul esi
add edx, esi
sar edx, 4
mov eax, edx
shr eax, 0x1f
inc ecx
add eax, edx
cmp ecx, eax
jbe 0x443b22
mov edx, eax
shr edx, 1
mov esi, 0x9249249
sub esi, edx
cmp esi, eax
jae 0x443b0e
xor eax, eax
jmp 0x443b10
add eax, edx
cmp eax, ecx
jae 0x443b16
mov eax, ecx
push eax
lea ecx, [ebp - 0x74]
call fcn.0043ade0
mov ebx, dword [ebp - 0x74]
lea eax, [edi*8]
sub eax, edi
lea ebx, [ebx + eax*4]
mov eax, dword [ebp - 0x70]
test eax, eax
je 0x443b40
mov ecx, 7
mov esi, ebx
mov edi, eax
rep movsd dword es:[edi], dword [esi]
add eax, 0x1c
mov dword [ebp - 0x70], eax
jmp 0x443bc1
cmp ecx, esi
jne 0x443bab
sub ecx, ebx
mov eax, 0x92492493
imul ecx
add edx, ecx
sar edx, 4
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
cmp ecx, 0x9249248
ja 0x443e34
sub esi, ebx
mov eax, 0x92492493
imul esi
add edx, esi
sar edx, 4
mov eax, edx
shr eax, 0x1f
inc ecx
add eax, edx
cmp ecx, eax
jbe 0x443bab
mov edx, eax
shr edx, 1
mov esi, 0x9249249
sub esi, edx
cmp esi, eax
jae 0x443b9a
xor eax, eax
jmp 0x443b9c
add eax, edx
cmp eax, ecx
jae 0x443ba2
mov eax, ecx
push eax
lea ecx, [ebp - 0x74]
call fcn.0043ade0
cmp dword [ebp - 0x70], edi
je 0x443bbd
mov edi, dword [ebp - 0x70]
mov ecx, 7
lea esi, [ebp - 0x3c]
rep movsd dword es:[edi], dword [esi]
add dword [ebp - 0x70], 0x1c
mov edi, dword [ebp - 0xa4]
mov edx, dword [ebp - 0xa8]
lea ecx, [ebp - 0x40]
mov dword [ebp - 0x40], 0
cmp ecx, edi
jae 0x443c52
mov eax, ecx
cmp edx, eax
ja 0x443c52
mov ebx, ecx
mov ecx, dword [ebp - 0xa0]
sub ebx, edx
sar ebx, 2
cmp edi, ecx
jne 0x443c41
mov eax, edi
sub eax, edx
sar eax, 2
cmp eax, 0x3ffffffe
ja 0x443e34
sub ecx, edx
inc eax
sar ecx, 2
cmp eax, ecx
jbe 0x443c41
mov edx, ecx
shr edx, 1
mov esi, 0x3fffffff
sub esi, edx
cmp esi, ecx
jae 0x443c21
xor ecx, ecx
jmp 0x443c23
add ecx, edx
cmp ecx, eax
jae 0x443c29
mov ecx, eax
push ecx
lea ecx, [ebp - 0xa8]
call fcn.0044c3f0
mov edi, dword [ebp - 0xa4]
mov edx, dword [ebp - 0xa8]
mov esi, dword [ebp - 0x84]
test edi, edi
je 0x443cb5
mov ecx, dword [edx + ebx*4]
mov dword [edi], ecx
jmp 0x443cb5
mov ecx, dword [ebp - 0xa0]
cmp edi, ecx
jne 0x443ca5
mov eax, edi
sub eax, edx
sar eax, 2
cmp eax, 0x3ffffffe
ja 0x443e34
sub ecx, edx
inc eax
sar ecx, 2
cmp eax, ecx
jbe 0x443ca5
mov edx, ecx
shr edx, 1
mov esi, 0x3fffffff
sub esi, edx
cmp esi, ecx
jae 0x443c8b
xor ecx, ecx
jmp 0x443c8d
add ecx, edx
cmp ecx, eax
jae 0x443c93
mov ecx, eax
push ecx
lea ecx, [ebp - 0xa8]
call fcn.0044c3f0
mov edi, dword [ebp - 0xa4]
mov esi, dword [ebp - 0x84]
test edi, edi
je 0x443cb5
mov dword [edi], 0
lea edx, [ebp - 0x40]
add edi, 4
cmp edx, esi
mov edx, dword [ebp - 0x88]
mov dword [ebp - 0xa4], edi
mov dword [ebp - 0x40], 0
jae 0x443d41
lea eax, [ebp - 0x40]
cmp edx, eax
ja 0x443d41
mov ecx, dword [ebp - 0x80]
mov edi, eax
sub edi, edx
sar edi, 2
cmp esi, ecx
jne 0x443d30
mov eax, esi
sub eax, edx
sar eax, 2
cmp eax, 0x3ffffffe
ja 0x443e34
sub ecx, edx
inc eax
sar ecx, 2
cmp eax, ecx
jbe 0x443d30
mov edx, ecx
shr edx, 1
mov esi, 0x3fffffff
sub esi, edx
cmp esi, ecx
jae 0x443d16
xor ecx, ecx
jmp 0x443d18
add ecx, edx
cmp ecx, eax
jae 0x443d1e
mov ecx, eax
push ecx
lea ecx, [ebp - 0x88]
call fcn.0044c3f0
mov esi, dword [ebp - 0x84]
test esi, esi
je 0x443d9f
mov ecx, dword [ebp - 0x88]
mov edx, dword [ecx + edi*4]
mov dword [esi], edx
jmp 0x443d9f
mov ecx, dword [ebp - 0x80]
cmp esi, ecx
jne 0x443d95
mov eax, esi
sub eax, edx
sar eax, 2
cmp eax, 0x3ffffffe
ja 0x443e34
sub ecx, dword [ebp - 0x88]
inc eax
sar ecx, 2
cmp eax, ecx
jbe 0x443d95
mov edx, ecx
shr edx, 1
mov esi, 0x3fffffff
sub esi, edx
cmp esi, ecx
jae 0x443d7b
xor ecx, ecx
jmp 0x443d7d
add ecx, edx
cmp ecx, eax
jae 0x443d83
mov ecx, eax
push ecx
lea ecx, [ebp - 0x88]
call fcn.0044c3f0
mov esi, dword [ebp - 0x84]
test esi, esi
je 0x443d9f
mov dword [esi], 0
mov eax, dword [ebp - 0x48]
inc eax
add esi, 4
xor edi, edi
mov dword [ebp - 0x84], esi
mov dword [ebp - 0x48], eax
cmp eax, dword [ebp - 0xc8]
jl 0x443a84
mov ebx, dword [ebp - 0x94]
mov esi, dword [ebp - 0xb4]
mov dword [ebp - 0x48], edi
cmp dword [ebp - 0xc4], edi
jle 0x444005
jmp 0x443de0
mov edx, dword [ebp - 0xb8]
lea eax, [ebp - 0x74]
cmp eax, esi
jae 0x443e7b
mov ecx, eax
cmp edx, ecx
ja 0x443e7b
mov ecx, dword [ebp - 0xb0]
mov edi, eax
sub edi, edx
cmp esi, ecx
jne 0x443e5e
mov eax, esi
sub eax, edx
sar eax, 4
cmp eax, 0xffffffe
ja 0x443e34
sub ecx, edx
inc eax
sar ecx, 4
cmp eax, ecx
jbe 0x443e5e
mov edx, ecx
shr edx, 1
mov esi, 0xfffffff
sub esi, edx
cmp esi, ecx
jae 0x443e3e
xor ecx, ecx
jmp 0x443e40
push str.vector_T__too_long
call fcn.004b7a1e
add ecx, edx
cmp ecx, eax
jae 0x443e46
mov ecx, eax
push ecx
lea ecx, [ebp - 0xb8]
call fcn.00442850
mov ebx, dword [ebp - 0x94]
mov esi, dword [ebp - 0xb4]
and edi, 0xfffffff0
add edi, dword [ebp - 0xb8]
mov dword [ebp - 0xd0], esi
mov dword [ebp - 0x54], esi
mov byte [ebp - 4], 2
test esi, esi
je 0x443eec
push edi
jmp 0x443ee5
mov ecx, dword [ebp - 0xb0]
cmp esi, ecx
jne 0x443ed0
mov eax, esi
sub eax, edx
sar eax, 4
cmp eax, 0xffffffe
ja 0x443e34
sub ecx, edx
inc eax
sar ecx, 4
cmp eax, ecx
jbe 0x443ed0
mov edx, ecx
shr edx, 1
mov esi, 0xfffffff
sub esi, edx
cmp esi, ecx
jae 0x443eb0
xor ecx, ecx
jmp 0x443eb2
add ecx, edx
cmp ecx, eax
jae 0x443eb8
mov ecx, eax
push ecx
lea ecx, [ebp - 0xb8]
call fcn.00442850
mov ebx, dword [ebp - 0x94]
mov esi, dword [ebp - 0xb4]
mov dword [ebp - 0xd0], esi
mov dword [ebp - 0x54], esi
mov byte [ebp - 4], 3
test esi, esi
je 0x443eec
lea edx, [ebp - 0x74]
push edx
mov ecx, esi
call fcn.0043b2c0
mov edx, dword [ebp - 0x98]
add esi, 0x10
lea eax, [ebp - 0x40]
mov dword [ebp - 0xb4], esi
mov byte [ebp - 4], 1
mov dword [ebp - 0x40], 0
cmp eax, ebx
jae 0x443f84
mov ecx, eax
cmp edx, ecx
ja 0x443f84
mov ecx, dword [ebp - 0x90]
mov edi, eax
sub edi, edx
sar edi, 2
cmp ebx, ecx
jne 0x443f79
mov eax, ebx
sub eax, edx
sar eax, 2
cmp eax, 0x3ffffffe
ja 0x443e34
sub ecx, edx
inc eax
sar ecx, 2
cmp eax, ecx
jbe 0x443f79
mov edx, ecx
shr edx, 1
mov esi, 0x3fffffff
sub esi, edx
cmp esi, ecx
jae 0x443f53
xor ecx, ecx
jmp 0x443f55
add ecx, edx
cmp ecx, eax
jae 0x443f5b
mov ecx, eax
push ecx
lea ecx, [ebp - 0x98]
call fcn.0044c3f0
mov ebx, dword [ebp - 0x94]
mov esi, dword [ebp - 0xb4]
mov edx, dword [ebp - 0x98]
test ebx, ebx
je 0x443fe7
mov edx, dword [edx + edi*4]
mov dword [ebx], edx
jmp 0x443fe7
mov ecx, dword [ebp - 0x90]
cmp ebx, ecx
jne 0x443fdd
mov eax, ebx
sub eax, edx
sar eax, 2
cmp eax, 0x3ffffffe
ja 0x443e34
sub ecx, edx
inc eax
sar ecx, 2
cmp eax, ecx
jbe 0x443fdd
mov edx, ecx
shr edx, 1
mov esi, 0x3fffffff
sub esi, edx
cmp esi, ecx
jae 0x443fbd
xor ecx, ecx
jmp 0x443fbf
add ecx, edx
cmp ecx, eax
jae 0x443fc5
mov ecx, eax
push ecx
lea ecx, [ebp - 0x98]
call fcn.0044c3f0
mov ebx, dword [ebp - 0x94]
mov esi, dword [ebp - 0xb4]
test ebx, ebx
je 0x443fe7
mov dword [ebx], 0
mov eax, dword [ebp - 0x48]
inc eax
add ebx, 4
mov dword [ebp - 0x94], ebx
mov dword [ebp - 0x48], eax
cmp eax, dword [ebp - 0xc4]
jl 0x443de0
xor edi, edi
mov ecx, dword [ebp - 0x64]
lea eax, [ebp - 0xb8]
push eax
add ecx, 4
call fcn.004438a0
mov eax, dword [ebp - 0x74]
cmp eax, edi
je 0x444027
push eax
call fcn.004b9008
add esp, 4
mov eax, dword [ebp - 0x88]
mov dword [ebp - 4], 0xffffffff
cmp eax, edi
je 0x444041
push eax
call fcn.004b9008
add esp, 4
mov eax, dword [ebp - 0x98]
cmp eax, edi
je 0x444054
push eax
call fcn.004b9008
add esp, 4
mov eax, dword [ebp - 0xa8]
cmp eax, edi
je 0x444067
push eax
call fcn.004b9008
add esp, 4
mov ecx, dword [ebp - 0xb8]
cmp ecx, edi
je 0x4440ad
mov ebx, dword [ebp - 0xb4]
mov esi, ecx
cmp ecx, ebx
je 0x4440a4
lea ecx, [ecx]
mov eax, dword [esi]
cmp eax, edi
je 0x444095
push eax
call fcn.004b9008
mov ecx, dword [ebp - 0xb8]
add esp, 4
mov dword [esi], edi
mov dword [esi + 4], edi
mov dword [esi + 8], edi
add esi, 0x10
cmp esi, ebx
jne 0x444080
push ecx
call fcn.004b9008
add esp, 4
mov ebx, dword [ebp - 0x64]
mov eax, dword [ebx + 0x14]
mov esi, dword [ebx + 4]
shl eax, 6
add esi, eax
push esi
lea ecx, [ebp - 0xb8]
mov dword [ebp - 0xd0], eax
call fcn.00442780
lea ecx, [esi + 0x10]
push ecx
lea ecx, [ebp - 0xa8]
mov dword [ebp - 4], 4
call fcn.0043ad10
lea edx, [esi + 0x20]
push edx
lea ecx, [ebp - 0x98]
mov byte [ebp - 4], 5
call fcn.0043ad10
add esi, 0x30
push esi
lea ecx, [ebp - 0x88]
mov byte [ebp - 4], 6
call fcn.0043ad10
mov eax, dword [ebp - 0xa4]
sub eax, dword [ebp - 0xa8]
push 5
sar eax, 2
mov dword [ebp - 0x78], eax
mov eax, dword [ebp - 0x94]
sub eax, dword [ebp - 0x98]
lea esi, [ebx + 0x3c]
sar eax, 2
push str.table
mov ecx, esi
mov dword [ebp - 4], 7
mov dword [ebp - 0x50], eax
call fcn.00422900
push esi
lea ecx, [ebx + 0x224]
call fcn.0043f940
mov eax, dword [esi]
push esi
push eax
mov ecx, ebx
call fcn.0043bad0
push ecx
mov esi, eax
mov eax, dword [0x5921b0]
mov edx, dword [eax + 0xc]
mov edi, esp
mov dword [ebp - 0x54], esp
mov ecx, 0x5921b0
mov dword [ebp - 0x54], edi
call edx
add eax, 0x10
mov dword [edi], eax
mov byte [ebp - 4], 9
test esi, esi
je 0x4441a8
test esi, 0xffff0000
jne 0x4441ac
movzx esi, si
push 0
push esi
call fcn.00420420
add esp, 8
test eax, eax
je 0x4441c9
push esi
push eax
mov ecx, edi
call fcn.004227a0
jmp 0x4441c9
xor eax, eax
jmp 0x4441c0
mov eax, esi
lea edx, [eax + 2]
mov cx, word [eax]
add eax, 2
test cx, cx
jne 0x4441b1
sub eax, edx
sar eax, 1
push eax
push esi
mov ecx, edi
call fcn.00422900
mov ecx, ebx
mov byte [ebp - 4], 7
call fcn.0043e1e0
mov eax, dword [0x5921b0]
mov edx, dword [eax + 0xc]
mov ecx, 0x5921b0
mov dword [ebp - 0x4c], 0
call edx
add eax, 0x10
mov dword [ebp - 0xbc], eax
mov edx, dword [ebp - 0x5c]
lea eax, [ebp - 0x4c]
push eax
lea ecx, [ebp - 0xbc]
push ecx
push edx
lea eax, [ebp - 0x60]
push eax
mov ecx, ebx
mov byte [ebp - 4], 0xa
call fcn.0043e810
mov eax, dword [ebp - 0x60]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x444230
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
lea ecx, [ebp - 0xbc]
push ecx
lea edx, [ebp - 0xcc]
push edx
mov ecx, ebx
call fcn.0043c660
push 1
lea eax, [ebx + 0x3c]
push eax
lea eax, [ebp - 0xcc]
push eax
lea ecx, [ebp - 0xc8]
push ecx
mov ecx, ebx
mov byte [ebp - 4], 0xb
call fcn.0043e9c0
mov ecx, ebx
call fcn.004370f0
cmp dword [ebx + 0x128], 1
je 0x4443c2
mov ecx, dword [ebp - 0x58]
mov eax, dword [ecx]
mov edx, dword [ecx + 4]
mov esi, dword [ebp - 0x78]
mov dword [ebp - 0x4c], eax
mov dword [ebp - 0x20], eax
mov eax, dword [ebx + 0xa8]
xor ecx, ecx
mov dword [ebp - 0x14], edx
mov dword [ebp - 0x1c], edx
lea edi, [eax + esi - 1]
test esi, esi
je 0x4442b4
mov edx, dword [ebp - 0xa8]
mov edx, dword [edx + ecx*4]
add edx, eax
inc ecx
add edi, edx
cmp ecx, esi
jb 0x44429f
mov edx, dword [ebp - 0x14]
mov esi, dword [ebp - 0x50]
lea ecx, [eax + esi]
lea edx, [edx + ecx - 1]
xor ecx, ecx
mov dword [ebp - 0x14], edx
test esi, esi
je 0x4442e3
jmp 0x4442d0
mov edx, dword [ebp - 0x98]
mov edx, dword [edx + ecx*4]
add edx, eax
add dword [ebp - 0x14], edx
inc ecx
cmp ecx, esi
jb 0x4442d0
mov edx, dword [ebp - 0x88]
mov eax, 6
cmp dword [ebx + 0x88], eax
jne 0x4442fd
add edi, eax
add dword [ebp - 0x14], eax
jmp 0x44430a
mov ebx, dword [ebx + 0x8c]
add ebx, ebx
add edi, ebx
add dword [ebp - 0x14], ebx
mov eax, dword [ebp - 0x58]
mov eax, dword [eax + 8]
sub eax, dword [ebp - 0x4c]
mov dword [ebp - 0x44], eax
cmp edi, eax
jge 0x4443b9
mov esi, dword [ebp - 0x84]
sub esi, edx
mov ebx, eax
xor ecx, ecx
sar esi, 2
sub ebx, edi
xor eax, eax
mov dword [ebp - 0x48], ecx
test esi, esi
je 0x444347
cmp dword [edx + eax*4], 0
jne 0x44433f
inc ecx
inc eax
cmp eax, esi
jb 0x444338
mov dword [ebp - 0x48], ecx
mov dword [ebp - 0x60], 0
test esi, esi
je 0x44438b
mov ecx, dword [ebp - 0xa8]
mov eax, edx
sub eax, ecx
mov dword [ebp - 0x40], eax
cmp dword [ebp - 0x48], 0
jle 0x44438b
cmp dword [eax + ecx], 0
jne 0x44437d
mov eax, ebx
cdq
idiv dword [ebp - 0x48]
dec dword [ebp - 0x48]
add dword [ecx], eax
sub ebx, eax
add edi, eax
mov eax, dword [ebp - 0x40]
mov edx, dword [ebp - 0x60]
inc edx
add ecx, 4
mov dword [ebp - 0x60], edx
cmp edx, esi
jb 0x44435f
cmp edi, dword [ebp - 0x44]
jge 0x4443b9
mov ecx, dword [ebp - 0x64]
mov eax, dword [ecx + 0x80]
dec eax
je 0x4443ac
dec eax
jne 0x4443b9
mov edx, dword [ebp - 0x58]
mov eax, dword [edx + 8]
sub eax, edi
mov dword [ebp - 0x20], eax
jmp 0x4443b9
mov eax, dword [ebp - 0x44]
sub eax, edi
cdq
sub eax, edx
sar eax, 1
add dword [ebp - 0x20], eax
add edi, dword [ebp - 0x20]
mov ebx, dword [ebp - 0x64]
mov dword [ebp - 0x18], edi
cmp dword [ebx + 0x128], 0
jne 0x44450c
mov eax, dword [ebx + 0x78]
test eax, eax
js 0x444402
mov ecx, dword [ebx + 0x70]
mov edx, dword [ebx + 0x6c]
push 0
push 5
push ecx
mov ecx, dword [ebx + 0x60]
push edx
push ecx
lea edx, [ebp - 0x20]
push edx
push eax
mov eax, dword [ebx + 0x120]
push eax
lea ecx, [ebx + 0xd4]
call fcn.004362d0
jmp 0x44449f
mov esi, dword [ebx + 0x7c]
cmp dword [esi - 0xc], 0
je 0x44449f
push ecx
mov ecx, dword [esi - 0x10]
mov edx, dword [ecx]
mov eax, dword [edx + 0x10]
mov dword [ebp - 0x54], esp
mov dword [ebp - 0x4c], esp
call eax
cmp dword [esi - 4], 0
lea ecx, [esi - 4]
jl 0x44443c
cmp eax, dword [esi - 0x10]
jne 0x44443c
lea edi, [esi - 0x10]
mov edx, 1
lock xadd dword [ecx], edx
jmp 0x444475
mov ecx, dword [esi - 0xc]
mov edx, dword [eax]
mov edx, dword [edx]
push 2
push ecx
mov ecx, eax
call edx
mov edi, eax
test edi, edi
jne 0x444455
call fcn.00420850
mov eax, dword [esi - 0xc]
mov dword [edi + 4], eax
mov eax, dword [esi - 0xc]
lea ecx, [eax + eax + 2]
push ecx
lea edx, [eax + eax + 2]
push esi
push edx
lea eax, [edi + 0x10]
push eax
call fcn.004ba9e1
add esp, 0x10
mov ecx, dword [ebp - 0x4c]
add edi, 0x10
mov dword [ecx], edi
mov eax, dword [ebp - 0x1c]
mov edx, dword [ebp - 0x14]
mov ecx, dword [ebp - 0x20]
sub edx, eax
push edx
mov edx, dword [ebp - 0x18]
sub edx, ecx
push edx
push eax
mov eax, dword [ebx + 0x120]
push ecx
push eax
mov ecx, ebx
call fcn.0043d7c0
mov ecx, dword [ebx + 0x8c]
test ecx, ecx
jle 0x44450c
cmp dword [ebx + 0x108], 0
push ecx
je 0x4444db
mov eax, dword [ebx + 0x88]
mov edx, dword [ebx + 0x68]
mov esi, dword [ebx + 0x64]
mov ecx, dword [ebp - 0x14]
mov edi, dword [ebx + 0x120]
push eax
mov eax, dword [ebp - 0x1c]
push edx
mov edx, dword [ebp - 0x18]
push esi
push ecx
mov ecx, dword [ebp - 0x20]
push edx
push eax
push ecx
push edi
jmp 0x444501
mov edx, dword [ebx + 0x88]
mov eax, dword [ebx + 0x10c]
mov ecx, dword [ebp - 0x1c]
mov esi, dword [ebx + 0x120]
push edx
mov edx, dword [ebp - 0x14]
push eax
push eax
mov eax, dword [ebp - 0x18]
push edx
mov edx, dword [ebp - 0x20]
push eax
push ecx
push edx
push esi
lea ecx, [ebx + 0xd4]
call fcn.00435ac0
cmp dword [ebx + 0x128], 1
mov eax, dword [ebp - 0x1c]
mov ecx, dword [ebp - 0x20]
mov edx, dword [ebp - 0x18]
mov dword [ebp - 0x70], eax
mov eax, dword [ebp - 0x14]
mov dword [ebp - 0x74], ecx
mov dword [ebp - 0x6c], edx
mov dword [ebp - 0x68], eax
je 0x444554
cmp dword [ebx + 0x88], 6
jne 0x444540
add ecx, 3
mov eax, 3
jmp 0x444548
mov eax, dword [ebx + 0x8c]
add ecx, eax
add dword [ebp - 0x70], eax
sub dword [ebp - 0x6c], eax
sub dword [ebp - 0x68], eax
mov dword [ebp - 0x74], ecx
xor edi, edi
cmp dword [ebp - 0x78], edi
je 0x4447e9
mov esi, dword [ebp - 0x50]
cmp esi, edi
je 0x4447e9
mov edx, dword [0x5921b0]
mov eax, dword [edx + 0xc]
mov ecx, 0x5921b0
mov dword [ebp - 0x44], edi
call eax
add eax, 0x10
mov dword [ebp - 0x54], eax
mov edx, dword [0x5921b0]
mov eax, dword [edx + 0xc]
mov ecx, 0x5921b0
mov byte [ebp - 4], 0xc
call eax
add eax, 0x10
mov dword [ebp - 0x58], eax
mov edx, dword [0x5921b0]
mov eax, dword [edx + 0xc]
mov ecx, 0x5921b0
mov byte [ebp - 4], 0xd
call eax
add eax, 0x10
mov dword [ebp - 0x40], eax
mov byte [ebp - 4], 0xe
mov dword [ebp - 0x48], edi
cmp esi, edi
jle 0x444780
mov edi, 0x548928
shr edi, 0x10
mov dword [ebp - 0x4c], edi
jmp 0x4445d6
mov edi, dword [ebp - 0x4c]
mov edx, dword [0x5921b0]
mov eax, dword [edx + 0xc]
push ecx
mov esi, esp
mov dword [ebp - 0xc4], esp
mov ecx, 0x5921b0
mov dword [ebp - 0xc4], esi
call eax
add eax, 0x10
mov dword [esi], eax
mov byte [ebp - 4], 0xf
test edi, edi
jne 0x444624
mov ecx, 0x548928
movzx edi, cx
push 0
push edi
call fcn.00420420
add esp, 8
test eax, eax
je 0x444632
push edi
push eax
mov ecx, esi
call fcn.004227a0
jmp 0x444632
push 2
push 0x548928
mov ecx, esi
call fcn.00422900
mov eax, dword [ebp - 0x5c]
lea edx, [ebp - 0x44]
push edx
push eax
mov ecx, ebx
mov byte [ebp - 4], 0xe
call fcn.0043a9d0
test eax, eax
je 0x444770
mov esi, dword [ebp - 0x44]
mov ebx, dword [ebp - 0x5c]
lea ecx, [ebp - 0x44]
push ecx
mov ecx, dword [ebp - 0x64]
push ebx
mov dword [ebp - 0x44], esi
call fcn.0043cca0
mov edx, dword [ebp - 0x44]
sub edx, esi
push edx
push esi
lea eax, [ebp - 0x60]
push eax
mov ecx, ebx
call fcn.0042faa0
mov eax, dword [eax]
mov ebx, dword [ebp - 0x40]
lea esi, [eax - 0x10]
add ebx, 0xfffffff0
mov byte [ebp - 4], 0x10
cmp esi, ebx
je 0x444726
cmp dword [ebx + 0xc], 0
jl 0x444719
mov ecx, dword [esi]
cmp ecx, dword [ebx]
jne 0x444719
mov edx, dword [ecx]
mov eax, dword [edx + 0x10]
call eax
cmp dword [esi + 0xc], 0
lea ecx, [esi + 0xc]
jl 0x4446bd
cmp eax, dword [esi]
jne 0x4446bd
mov edi, esi
mov edx, 1
lock xadd dword [ecx], edx
jmp 0x4446f8
mov ecx, dword [esi + 4]
mov edx, dword [eax]
mov edx, dword [edx]
push 2
push ecx
mov ecx, eax
call edx
mov edi, eax
test edi, edi
je 0x444450
mov eax, dword [esi + 4]
mov dword [edi + 4], eax
mov eax, dword [esi + 4]
lea ecx, [eax + eax + 2]
push ecx
add esi, 0x10
lea edx, [eax + eax + 2]
push esi
push edx
lea eax, [edi + 0x10]
push eax
call fcn.004ba9e1
add esp, 0x10
lea eax, [ebx + 0xc]
or ecx, 0xffffffff
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x444711
mov ecx, dword [ebx]
mov edx, dword [ecx]
mov eax, dword [edx + 4]
push ebx
call eax
add edi, 0x10
mov dword [ebp - 0x40], edi
jmp 0x444726
mov ecx, dword [eax - 0xc]
push ecx
push eax
lea ecx, [ebp - 0x40]
call fcn.00422900
mov eax, dword [ebp - 0x60]
add eax, 0xfffffff0
mov byte [ebp - 4], 0xe
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x444749
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov ecx, dword [ebp - 0x48]
push ecx
lea edx, [ebp - 0xb8]
push edx
lea eax, [ebp - 0x74]
push eax
lea ecx, [ebp - 0x40]
push ecx
mov ecx, dword [ebp - 0x64]
call fcn.00442fe0
mov edx, dword [ebp - 0x44]
mov ebx, dword [ebp - 0x64]
add edx, 5
mov dword [ebp - 0x44], edx
mov eax, dword [ebp - 0x48]
inc eax
mov dword [ebp - 0x48], eax
cmp eax, dword [ebp - 0x50]
jl 0x4445d3
mov eax, dword [ebp - 0x40]
add eax, 0xfffffff0
mov byte [ebp - 4], 0xd
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4447a3
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, dword [ebp - 0x58]
add eax, 0xfffffff0
mov byte [ebp - 4], 0xc
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4447c6
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, dword [ebp - 0x54]
add eax, 0xfffffff0
mov byte [ebp - 4], 0xb
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4447e9
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
cmp dword [ebx + 0x128], 0
je 0x444ac1
mov edi, 1
cmp dword [ebp - 0x78], edi
jl 0x44490f
cmp dword [ebp - 0x50], 0
jle 0x444905
mov ecx, dword [ebp - 0xb8]
mov edx, dword [ebp - 0x50]
mov dword [ebp - 0x44], ecx
mov dword [ebp - 0x4c], edx
lea ecx, [ecx]
cmp dword [ebp - 0x78], 0
jle 0x4448f8
mov esi, dword [ebp - 0xa8]
mov eax, dword [ebp - 0x88]
sub eax, esi
mov dword [ebp - 0x40], eax
mov eax, dword [ebp - 0x78]
lea ebx, [esi + edi*4 - 4]
mov dword [ebp - 0x5c], 0
mov dword [ebp - 0x58], esi
mov dword [ebp - 0x60], ebx
mov dword [ebp - 0x48], eax
mov ecx, dword [ebp - 0x44]
mov ecx, dword [ecx]
add ecx, dword [ebp - 0x5c]
cmp dword [ecx], edi
jne 0x4448df
cmp edi, 1
jne 0x44488c
mov edx, dword [esi]
lea eax, [ecx + 0x10]
mov dword [ebp - 0x54], edx
cmp edx, dword [eax]
jl 0x444876
lea eax, [ebp - 0x54]
mov edx, dword [eax]
mov dword [esi], edx
cmp dword [ecx + 0x18], 0
je 0x4448df
mov eax, dword [ebp - 0x40]
mov dword [esi + eax], 1
jmp 0x4448df
xor edx, edx
test edi, edi
jle 0x4448c0
mov eax, dword [ebp - 0x40]
add eax, esi
mov esi, dword [ebp - 0xa8]
sub esi, dword [ebp - 0x88]
mov ebx, edi
add edx, dword [esi + eax]
cmp dword [ecx + 0x18], 0
je 0x4448b4
mov dword [eax], 1
add eax, 4
dec ebx
jne 0x4448a5
mov ebx, dword [ebp - 0x60]
mov esi, dword [ebp - 0x58]
cmp edx, dword [ecx + 8]
jge 0x4448df
mov eax, dword [ecx + 0x10]
sub eax, edx
cdq
idiv edi
add dword [ebx], edx
test edi, edi
jle 0x4448df
mov ecx, esi
mov edx, edi
add dword [ecx], eax
add ecx, 4
dec edx
jne 0x4448d7
add dword [ebp - 0x5c], 0x1c
add ebx, 4
add esi, 4
dec dword [ebp - 0x48]
mov dword [ebp - 0x60], ebx
mov dword [ebp - 0x58], esi
jne 0x444852
add dword [ebp - 0x44], 0x10
dec dword [ebp - 0x4c]
jne 0x444820
inc edi
cmp edi, dword [ebp - 0x78]
jle 0x444804
mov edi, 1
cmp dword [ebp - 0x50], edi
jl 0x444a1c
lea ecx, [ecx]
cmp dword [ebp - 0x50], 0
mov dword [ebp - 0x44], 0
jle 0x444a12
mov esi, dword [ebp - 0x98]
mov ecx, dword [ebp - 0xb8]
mov dword [ebp - 0x40], esi
mov dword [ebp - 0x58], ecx
cmp dword [ebp - 0x78], 0
jle 0x4449f8
mov edx, dword [ebp - 0x78]
mov dword [ebp - 0x5c], 0
mov dword [ebp - 0x4c], edx
mov eax, dword [ebp - 0x58]
mov eax, dword [eax]
add eax, dword [ebp - 0x5c]
mov dword [ebp - 0x60], eax
cmp dword [eax + 4], edi
jne 0x4449eb
cmp edi, 1
jne 0x444988
mov ecx, dword [esi]
add eax, 0x14
mov dword [ebp - 0x54], ecx
cmp ecx, dword [eax]
jl 0x444982
lea eax, [ebp - 0x54]
mov ecx, dword [eax]
mov dword [esi], ecx
jmp 0x4449eb
xor ecx, ecx
xor edx, edx
xor esi, esi
xor ebx, ebx
mov dword [ebp - 0x54], ecx
cmp edi, 2
jl 0x4449b5
mov eax, dword [ebp - 0x40]
lea ecx, [edi - 2]
shr ecx, 1
inc ecx
lea ebx, [ecx + ecx]
add edx, dword [eax]
add esi, dword [eax + 4]
add eax, 8
dec ecx
jne 0x4449a4
mov ecx, dword [ebp - 0x54]
mov eax, dword [ebp - 0x60]
cmp ebx, edi
jge 0x4449c5
add ebx, dword [ebp - 0x44]
mov ecx, dword [ebp - 0x98]
mov ecx, dword [ecx + ebx*4]
add esi, edx
add ecx, esi
mov esi, dword [ebp - 0x40]
cmp ecx, dword [eax + 0x14]
jge 0x4449eb
mov eax, dword [eax + 0x14]
sub eax, ecx
cdq
idiv edi
add dword [esi], edx
test edi, edi
jle 0x4449eb
mov ecx, esi
mov edx, edi
add dword [ecx], eax
add ecx, 4
dec edx
jne 0x4449e3
add dword [ebp - 0x5c], 0x1c
dec dword [ebp - 0x4c]
jne 0x44495a
mov eax, dword [ebp - 0x44]
add dword [ebp - 0x58], 0x10
inc eax
add esi, 4
mov dword [ebp - 0x44], eax
mov dword [ebp - 0x40], esi
cmp eax, dword [ebp - 0x50]
jl 0x444943
inc edi
cmp edi, dword [ebp - 0x50]
jle 0x444920
mov edi, dword [ebp - 0x64]
mov edx, dword [edi + 0xa8]
mov ecx, dword [ebp - 0x78]
mov esi, dword [ebp - 0xc0]
lea eax, [edx + ecx - 1]
add dword [esi], eax
mov edx, dword [edi + 0xa8]
mov eax, dword [ebp - 0x50]
lea edx, [edx + eax - 1]
add dword [esi + 4], edx
xor eax, eax
test ecx, ecx
jle 0x444a60
mov edx, dword [ebp - 0xa8]
mov ebx, dword [edx + eax*4]
add ebx, dword [edi + 0xa8]
inc eax
add dword [esi], ebx
cmp eax, ecx
jl 0x444a50
xor eax, eax
cmp dword [ebp - 0x50], eax
jle 0x444a84
mov ecx, dword [esi + 4]
mov edx, dword [ebp - 0x98]
mov ebx, dword [edx + eax*4]
add ebx, dword [edi + 0xa8]
inc eax
add ecx, ebx
mov dword [esi + 4], ecx
cmp eax, dword [ebp - 0x50]
jl 0x444a70
cmp dword [edi + 0x88], 6
jne 0x444aaa
mov eax, dword [edi + 0x8c]
lea eax, [eax + eax*2]
add eax, eax
add dword [esi], eax
mov eax, dword [edi + 0x8c]
lea ecx, [eax + eax*2]
add ecx, ecx
add dword [esi + 4], ecx
jmp 0x444add
mov edx, dword [edi + 0x8c]
add edx, edx
add dword [esi], edx
mov eax, dword [edi + 0x8c]
add eax, eax
add dword [esi + 4], eax
jmp 0x444add
mov ecx, dword [ebp - 0x18]
sub ecx, dword [ebp - 0x20]
mov eax, dword [ebp - 0xc0]
mov edi, dword [ebp - 0x64]
mov dword [eax], ecx
mov ecx, dword [ebp - 0x14]
sub ecx, dword [ebp - 0x1c]
mov esi, eax
mov dword [eax + 4], ecx
mov ebx, dword [edi + 4]
add ebx, dword [ebp - 0xd0]
lea ecx, [ebp - 0xb8]
push ecx
mov ecx, ebx
call fcn.00442eb0
lea edx, [ebp - 0xa8]
push edx
lea ecx, [ebx + 0x10]
call fcn.0043a0b0
lea eax, [ebp - 0x98]
push eax
lea ecx, [ebx + 0x20]
call fcn.0043a0b0
lea ecx, [ebp - 0x88]
push ecx
lea ecx, [ebx + 0x30]
call fcn.0043a0b0
push 5
push str.table
lea ecx, [edi + 0x3c]
call fcn.00422900
push 1
mov ecx, edi
call fcn.0043fc50
test eax, eax
je 0x444b44
mov ecx, edi
call fcn.004370f0
mov eax, dword [ebp - 0xcc]
add eax, 0xfffffff0
mov byte [ebp - 4], 0xa
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x444b6a
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, dword [ebp - 0xbc]
add eax, 0xfffffff0
mov byte [ebp - 4], 7
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x444b90
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, dword [ebp - 0x88]
test eax, eax
je 0x444ba3
push eax
call fcn.004b9008
add esp, 4
mov eax, dword [ebp - 0x98]
test eax, eax
je 0x444bb6
push eax
call fcn.004b9008
add esp, 4
mov eax, dword [ebp - 0xa8]
test eax, eax
je 0x444bc9
push eax
call fcn.004b9008
add esp, 4
mov ecx, dword [ebp - 0xb8]
test ecx, ecx
je 0x444c0f
mov ebx, dword [ebp - 0xb4]
mov edi, ecx
cmp ecx, ebx
je 0x444c06
nop
mov eax, dword [edi]
test eax, eax
je 0x444bf5
push eax
call fcn.004b9008
mov ecx, dword [ebp - 0xb8]
add esp, 4
xor eax, eax
mov dword [edi], eax
mov dword [edi + 4], eax
mov dword [edi + 8], eax
add edi, 0x10
cmp edi, ebx
jne 0x444be0
push ecx
call fcn.004b9008
add esp, 4
mov eax, esi
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.004b9ff3
mov esp, ebp
pop ebp
ret 0xc