Function at 0x419800
Capabilities:
Create thread

Disassembly:
mov edx, dword [0x4633b0]
sub esp, 0x284
push ebx
push ebp
push esi
mov esi, dword [0x4633b4]
push edi
sub esp, 0x10
xor eax, eax
xor ecx, ecx
mov edi, esp
mov dword [edi], eax
mov dword [edi + 4], ecx
mov dword [edi + 8], edx
mov dword [edi + 0xc], esi
sub esp, 0x84
mov ecx, 0x21
mov esi, 0x4b7a40
mov edi, esp
rep movsd dword es:[edi], dword [esi]
call fcn.00407160
add esp, 0x94
call fcn.00416ce0
mov edi, dword [0x45a084]
mov ebx, dword [0x45a100]
mov ebp, dword [0x45a0c8]
xor esi, esi
cmp esi, 0xfffffff0
je 0x41989b
mov eax, dword [esi + 0x7e3170]
push 0
push eax
call edi
test eax, eax
jne 0x419893
mov ecx, dword [esi + 0x7e3170]
push ecx
call ebx
mov edx, dword [esi + 0x77b630]
push 0xffffffffffffffff
push edx
call edi
mov eax, dword [esi + 0x77b630]
push eax
call ebp
push 0xa
call dword [0x45a064]
sub esi, 4
cmp esi, 0xfffffff0
jg 0x419867
mov eax, dword [0x84f488]
test eax, eax
mov dword [esp + 0x10], 0
jle 0x419981
mov ecx, dword [esp + 0x29c]
mov edx, dword [esp + 0x298]
add ecx, 0x2c848
mov ebx, 0x4b804c
mov dword [esp + 0x18], ecx
lea ebp, [edx + 0x2c8ec]
nop
lea esp, [esp]
mov eax, dword [ebx]
mov edx, dword [ebp - 4]
push eax
mov eax, dword [ebp - 8]
sub esp, 0x130
mov edi, esp
lea esi, [ebp - 0xa4]
mov ecx, 0x4c
rep movsd dword es:[edi], dword [esi]
mov ecx, dword [ebp]
push ecx
push edx
mov edx, dword [ebp - 0x7c]
push eax
mov eax, dword [ebp - 0x84]
lea ecx, [ebp - 0x74]
push ecx
mov ecx, dword [ebp - 0x80]
push edx
mov edx, dword [ebp - 0x9c]
push eax
mov eax, dword [ebp - 0x98]
push ecx
mov ecx, dword [ebp - 0x94]
push edx
push eax
push ecx
lea edx, [esp + 0x2c0]
push edx
call fcn.00405ad0
mov edx, dword [esp + 0x178]
mov esi, eax
mov eax, dword [esp + 0x170]
mov edi, edx
mov ecx, 0x4c
add esp, 0x160
rep movsd dword es:[edi], dword [esi]
mov ecx, dword [0x84f488]
inc eax
add edx, 0x130
add ebx, 0x84
add ebp, 0x130
cmp eax, ecx
mov dword [esp + 0x10], eax
mov dword [esp + 0x18], edx
jl 0x4198e0
mov eax, dword [esp + 0x29c]
mov ecx, dword [esp + 0x298]
push 0x67b18
push eax
push ecx
call fcn.00401260
mov ecx, dword [0x4633b8]
add esp, 0xc
test ecx, ecx
mov dword [esp + 0x4c], 0
jle 0x419d33
mov dword [esp + 0x14], 0x66c6e0
lea esp, [esp]
mov edx, dword [esp + 0x14]
cmp byte [edx], 0
je 0x419d17
mov ecx, str.ca01
mov eax, ecx
mov dword [esp + 0x18], 0x827818
neg eax
mov edi, edi
mov dword [esp + 0x1c], ecx
mov dword [esp + 0x10], eax
mov dword [esp + 0x48], 0x32
mov al, byte [0x46dda9]
mov dx, word [0x45e5c4]
xor ecx, ecx
mov word [esp + 0x25], cx
mov byte [esp + 0x24], al
mov al, byte [0x45e5c6]
mov byte [esp + 0x27], cl
mov byte [esp + 0x2b], cl
mov cx, word [0x45e5cc]
mov byte [esp + 0x2a], al
mov ax, word [0x45e5d4]
mov word [esp + 0x2c], cx
mov cl, byte [0x45e5d6]
mov word [esp + 0x28], dx
mov dl, byte [0x45e5ce]
mov word [esp + 0x30], ax
mov al, byte [0x45e5de]
mov byte [esp + 0x32], cl
mov cx, word [0x45e5e4]
mov byte [esp + 0x2e], dl
mov dx, word [0x45e5dc]
mov byte [esp + 0x36], al
mov ax, word [0x45e5ec]
mov word [esp + 0x38], cx
mov cl, byte [0x45e5ee]
mov word [esp + 0x34], dx
mov dl, byte [0x45e5e6]
mov word [esp + 0x3c], ax
mov al, byte [0x45e5f6]
mov byte [esp + 0x3e], cl
mov cx, word [0x45e5fc]
mov byte [esp + 0x3a], dl
mov dx, word [0x45e5f4]
mov byte [esp + 0x42], al
mov eax, dword [esp + 0x1c]
mov word [esp + 0x44], cx
cmp byte [eax], 0
mov word [esp + 0x40], dx
mov dl, byte [0x45e5fe]
mov byte [esp + 0x2f], 0
mov byte [esp + 0x33], 0
mov byte [esp + 0x37], 0
mov byte [esp + 0x3b], 0
mov byte [esp + 0x3f], 0
mov byte [esp + 0x43], 0
mov byte [esp + 0x46], dl
mov byte [esp + 0x47], 0
je 0x419cd0
mov dword [esp + 0x50], 0
lea ebp, [esp + 0x24]
nop
mov eax, dword [esp + 0x1c]
mov esi, dword [esp + 0x10]
xor ebx, ebx
lea ebx, [ebx]
mov cl, byte [eax]
lea edx, [esp + esi + 0x64]
mov byte [edx + eax], cl
inc eax
test cl, cl
jne 0x419b00
xor eax, eax
mov edi, ebp
mov ecx, 0xffffffff
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov eax, ecx
or ecx, 0xffffffff
mov esi, edi
mov dword [esp + 0x20], eax
xor eax, eax
lea edx, [esp + 0x64]
mov edi, edx
mov edx, dword [esp + 0x20]
repne scasb al, byte es:[edi]
dec edi
mov ecx, edx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov esi, dword [esp + 0x10]
lea edi, [esp + 0x64]
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
mov ax, word [str.ln0000]
mov word [edi - 1], ax
mov eax, dword [esp + 0x1c]
mov cl, byte [eax]
lea edx, [esp + esi + 0x164]
mov byte [edx + eax], cl
inc eax
test cl, cl
jne 0x419b60
xor eax, eax
mov edi, ebp
mov ecx, 0xffffffff
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov eax, ecx
or ecx, 0xffffffff
mov esi, edi
mov dword [esp + 0x20], eax
xor eax, eax
lea edx, [esp + 0x164]
mov edi, edx
mov edx, dword [esp + 0x20]
repne scasb al, byte es:[edi]
mov ecx, edx
shr ecx, 2
dec edi
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
or ecx, 0xffffffff
lea edi, [esp + 0x164]
repne scasb al, byte es:[edi]
mov ax, word [0x45e602]
lea ecx, [esp + 0x64]
push ecx
mov word [edi - 1], ax
call dword [0x45a1f8]
mov edx, dword [esp + 0x14]
push edx
mov esi, eax
call dword [0x45a1f8]
lea esp, [esp]
mov dl, byte [eax]
mov cl, dl
cmp dl, byte [esi]
jne 0x419c04
test cl, cl
je 0x419c00
mov dl, byte [eax + 1]
mov cl, dl
cmp dl, byte [esi + 1]
jne 0x419c04
add eax, 2
add esi, 2
test cl, cl
jne 0x419be0
xor eax, eax
jmp 0x419c09
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x419c12
mov ebx, 1
mov edi, dword [0x45a1f8]
lea eax, [esp + 0x164]
push eax
call edi
mov ecx, dword [esp + 0x14]
push ecx
mov esi, eax
call edi
nop
lea esp, [esp]
mov dl, byte [eax]
mov cl, dl
cmp dl, byte [esi]
jne 0x419c54
test cl, cl
je 0x419c50
mov dl, byte [eax + 1]
mov cl, dl
cmp dl, byte [esi + 1]
jne 0x419c54
add eax, 2
add esi, 2
test cl, cl
jne 0x419c30
xor eax, eax
jmp 0x419c59
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x419c64
mov ebx, 2
jmp 0x419c68
test ebx, ebx
je 0x419c77
mov eax, dword [esp + 0x18]
mov eax, dword [eax]
test eax, eax
je 0x419c8e
cmp eax, 1
je 0x419cad
mov eax, dword [esp + 0x50]
inc eax
add ebp, 4
cmp eax, 9
mov dword [esp + 0x50], eax
jl 0x419af0
jmp 0x419cd0
cmp ebx, 1
je 0x419cd0
mov edx, dword [esp + 0x14]
lea ecx, [esp + 0x64]
lea eax, [esp + 0x64]
sub edx, ecx
mov cl, byte [eax]
mov byte [edx + eax], cl
inc eax
test cl, cl
jne 0x419ca1
jmp 0x419cd0
cmp ebx, 2
je 0x419cd0
mov edx, dword [esp + 0x14]
lea ecx, [esp + 0x164]
lea eax, [esp + 0x164]
sub edx, ecx
mov cl, byte [eax]
mov byte [edx + eax], cl
inc eax
test cl, cl
jne 0x419cc6
mov edx, dword [esp + 0x10]
mov ecx, dword [esp + 0x1c]
mov eax, 0x10
sub edx, eax
add ecx, eax
mov eax, dword [esp + 0x48]
dec eax
mov dword [esp + 0x10], edx
mov dword [esp + 0x1c], ecx
mov dword [esp + 0x48], eax
jne 0x4199f0
mov esi, dword [esp + 0x18]
add esi, 4
cmp ecx, 0x461b80
mov eax, edx
mov dword [esp + 0x18], esi
jl 0x4199e0
mov ecx, dword [0x4633b8]
mov eax, dword [esp + 0x4c]
mov esi, dword [esp + 0x14]
inc eax
add esi, 0x40
cmp eax, ecx
mov dword [esp + 0x4c], eax
mov dword [esp + 0x14], esi
jl 0x4199c0
cmp ecx, 1
mov eax, dword [0x4633b4]
mov esi, dword [0x4633b0]
mov dword [esp + 0x10], 1
jle 0x419e01
mov edx, dword [esp + 0x298]
mov ebp, 0x4b8044
lea ebx, [edx + 0x3a960]
mov ecx, dword [0x8277cc]
imul eax, esi
cmp ecx, 1
push eax
jne 0x419d7b
mov eax, dword [ebp + 0x48]
push eax
call fcn.00401340
jmp 0x419d84
mov ecx, dword [ebp + 0x48]
push ecx
call fcn.00401300
mov al, byte [ebx]
add esp, 8
test al, al
je 0x419dca
sub esp, 0x84
mov edi, esp
lea edx, [esp + 0xe8]
push ebx
mov ecx, 0x21
mov esi, ebp
push edx
rep movsd dword es:[edi], dword [esi]
call fcn.0043ba40
mov esi, eax
mov eax, dword [0x4633b4]
mov ecx, 0x21
mov edi, ebp
rep movsd dword es:[edi], dword [esi]
mov esi, dword [0x4633b0]
add esp, 0x8c
jmp 0x419de1
mov esi, dword [0x4633b0]
mov eax, dword [0x4633b4]
mov dword [ebp + 0x18], esi
mov dword [ebp + 0x1c], eax
mov dword [ebp + 0x50], esi
mov dword [ebp + 0x54], eax
mov ecx, dword [esp + 0x10]
mov edx, dword [0x4633b8]
inc ecx
add ebx, 0x40
add ebp, 0x84
cmp ecx, edx
mov dword [esp + 0x10], ecx
jl 0x419d61
mov ecx, dword [0x7e3174]
xor ebx, ebx
test ecx, ecx
jle 0x419ef7
mov ecx, dword [esp + 0x298]
lea ebp, [ecx + 0x3c2c2]
mov edi, edi
cmp byte [ebp - 0x1e], 1
jne 0x419ee2
xor ecx, ecx
sub esp, 0x10
mov edi, esp
mov dword [edi], ecx
xor edx, edx
mov dword [edi + 4], edx
mov dword [edi + 8], esi
movzx esi, word [ebp - 0x46]
imul esi, esi, 0x84
mov dword [edi + 0xc], eax
sub esp, 0x84
add esi, 0x4b7fc0
mov ecx, 0x21
mov edi, esp
rep movsd dword es:[edi], dword [esi]
call fcn.00407160
movzx edx, byte [ebp]
add esp, 0x94
push edx
lea eax, [ebp + 1]
push eax
call fcn.00423ee0
movzx ecx, word [ebp - 2]
mov edx, dword [ebp - 6]
movzx esi, word [ebp - 0x46]
add esp, 4
imul esi, esi, 0x84
push eax
mov eax, dword [ebp - 0xa]
push ecx
push edx
push eax
sub esp, 0x10
lea ecx, [ebp - 0x1a]
mov eax, dword [ecx]
mov edx, esp
mov dword [edx], eax
mov eax, dword [ecx + 4]
mov dword [edx + 4], eax
mov eax, dword [ecx + 8]
mov ecx, dword [ecx + 0xc]
mov dword [edx + 8], eax
mov dword [edx + 0xc], ecx
sub esp, 0x84
lea edx, [esp + 0xfc]
mov edi, esp
add esi, 0x4b7fc0
mov ecx, 0x21
push edx
rep movsd dword es:[edi], dword [esi]
call fcn.0040a4f0
mov esi, dword [0x4633b0]
mov eax, dword [0x4633b4]
add esp, 0xac
mov ecx, dword [0x7e3174]
inc ebx
add ebp, 0x14c
cmp ebx, ecx
jl 0x419e20
mov eax, dword [esp + 0x298]
mov ebp, 0x4bb4c0
lea ebx, [eax + 0x5e0f5]
lea esp, [esp]
cmp byte [ebx], 0
je 0x419f45
sub esp, 0x84
mov edi, esp
mov ecx, 0x21
mov esi, ebp
rep movsd dword es:[edi], dword [esi]
lea ecx, [esp + 0xe8]
push ebx
push ecx
call fcn.0043ba40
mov ecx, 0x21
mov esi, eax
mov edi, ebp
add esp, 0x8c
rep movsd dword es:[edi], dword [esi]
add ebp, 0x84
add ebx, 0x20
cmp ebp, 0x4bb85c
jl 0x419f10
push 1
sub esp, 0x84
mov ecx, 0x21
mov esi, 0x4b8044
mov edi, esp
rep movsd dword es:[edi], dword [esi]
call fcn.00426e90
push 0
push 0x12c
push 0x45e604
push 4
call fcn.0040eef0
add esp, 0x98
mov esi, 2
nop
mov edx, dword [0x8277b8]
push edx
push 0
push 0
push esi
push 4
push 0x45e606
call fcn.004397e0
add esp, 0x18
inc esi
cmp esi, 7
jl 0x419f90
cmp dword [0x8277b4], 1
mov ebx, dword [esp + 0x298]
jne 0x41a078
xor esi, esi
lea ebp, [ebx + 0x5de7c]
lea edi, [ebx + 0x5e0a4]
mov al, byte [ebx + esi + 0x5e07c]
cmp al, 2
je 0x419ff7
cmp al, 7
je 0x419ff7
mov eax, dword [0x8277b8]
mov ecx, dword [edi]
push eax
push 0
push ecx
push esi
push 4
push 0x45e608
jmp 0x41a007
mov edx, dword [0x8277b8]
mov eax, dword [edi]
push edx
push 0
push eax
push esi
push 2
push ebp
call fcn.004397e0
add esp, 0x18
inc esi
add edi, 4
add ebp, 0x40
cmp esi, 2
jl 0x419fd3
mov esi, 2
lea ebp, [ebx + 0x5defc]
lea edi, [ebx + 0x5e0ac]
lea esp, [esp]
mov al, byte [ebx + esi + 0x5e07c]
cmp al, 2
je 0x41a055
cmp al, 7
je 0x41a055
mov ecx, dword [0x8277b8]
mov edx, dword [edi]
push ecx
push 0
push edx
push esi
push 4
push 0x45e60a
jmp 0x41a064
mov eax, dword [0x8277bc]
mov ecx, dword [edi]
push eax
push 0
push ecx
push esi
push 2
push ebp
call fcn.004397e0
add esp, 0x18
inc esi
add edi, 4
add ebp, 0x40
cmp esi, 6
jl 0x41a030
xor edi, edi
mov ebp, 0x6998e0
lea esi, [ebx + 0x4a1a4]
cmp byte [esi - 0x10c], 1
jne 0x41a0cd
push edi
push ebp
push esi
call fcn.0041a910
mov edx, dword [esi - 4]
add esp, 0xc
cmp ebp, 0x6998e0
mov dword [esi - 0x108], edx
je 0x41a0cd
lea eax, [edi*4 + 0x7e3180]
push eax
push 0
push edi
push 0x41b160
push 0
push 0
call fcn.0043fcfe
add esp, 0x18
mov dword [edi*4 + 0x77b620], eax
add ebp, 0x186a0
inc edi
add esi, 0x3f94
cmp ebp, 0x713a00
jl 0x41a085
xor eax, eax
mov dword [ebx + 0x67af8], eax
mov dword [ebx + 0x67afc], 1
mov dword [ebx + 0x67b00], eax
call fcn.00416ce0
pop edi
pop esi
pop ebp
mov eax, 1
pop ebx
add esp, 0x284
ret