Function at 0x45d876
Capabilities:
Terminate process

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x30
push ebx
push esi
mov esi, ecx
mov ebx, edx
mov ecx, dword [ebp + 0x18]
mov edx, dword [ebp + 0x14]
push edi
mov edi, dword [esi + 8]
movzx eax, byte [ecx]
mov dword [ebp - 0x14], eax
mov eax, dword [ecx + 4]
mov dword [ebp - 8], eax
xor eax, eax
mov dword [ebp - 0x18], ebx
mov dword [ebp - 0xc], esi
mov dword [ebp - 0x2c], edi
mov dword [ebp - 0x28], eax
mov dword [ebp - 0x10], eax
test edx, edx
je 0x45d8b6
movzx edx, byte [edx + 1]
mov dword [ebp - 0x1c], edx
jmp 0x45d8b9
mov dword [ebp - 0x1c], eax
mov edx, dword [ebp + 0x10]
test edx, edx
je 0x45d8d0
and dword [ebp + 0x10], eax
cmp dword [edx], eax
cmove edx, dword [ebp + 0x10]
mov dword [ebp + 0x10], edx
test edx, edx
jne 0x45d8e9
cmp dword [ebp - 0x1c], eax
jne 0x45d8e9
push dword [ebp + 0x1c]
mov edx, dword [ebx + 0x10]
mov ecx, edi
call fcn.0045d7eb
mov edx, dword [ebp + 0x10]
pop ecx
mov ecx, dword [ebp + 0x18]
mov eax, dword [ebp + 8]
mov ebx, dword [eax]
mov eax, dword [ecx + 8]
test eax, eax
jne 0x45d927
test edx, edx
je 0x45d90d
test byte [edx + 0x1c], 1
mov eax, dword [edx]
mov eax, dword [eax]
mov dword [ebp - 0x10], eax
jne 0x45d90a
inc eax
mov dword [ebp - 0x10], eax
add dword [esi + 0x2c], eax
mov ecx, dword [esi + 0x2c]
mov edx, dword [ebp + 0x18]
lea eax, [ecx + 1]
mov dword [edx + 8], eax
lea eax, [ecx + ebx]
mov edx, dword [ebp + 0x10]
mov ecx, dword [ebp + 0x18]
mov dword [esi + 0x2c], eax
jmp 0x45d931
add eax, ebx
cmp eax, dword [esi + 0x2c]
jle 0x45d931
add dword [esi + 0x2c], ebx
cmp dword [ebp + 0xc], 0
mov eax, dword [ecx + 8]
mov dword [ecx + 0xc], ebx
mov dword [ebp - 4], eax
mov dword [ebp - 0x20], eax
jl 0x45d97a
xor ecx, ecx
mov dword [ebp - 0x24], ecx
test ebx, ebx
jle 0x45da27
mov esi, eax
lea eax, [ecx + esi]
push eax
push ecx
push dword [ebp + 0xc]
mov ecx, edi
push 0x60
pop edx
call fcn.00439d0e
mov ecx, dword [ebp - 0x24]
add esp, 0xc
inc ecx
mov dword [ebp - 0x24], ecx
cmp ecx, ebx
jl 0x45d952
mov esi, dword [ebp - 0xc]
jmp 0x45da24
mov ecx, dword [ebp - 0x14]
cmp ecx, 3
je 0x45da27
cmp ecx, 0xa
je 0x45d99b
cmp ecx, 9
je 0x45d99b
cmp ecx, 0xd
je 0x45d99b
xor ebx, ebx
mov cl, bl
jmp 0x45d99f
mov cl, 1
xor ebx, ebx
mov byte [ebp + 0xc], cl
test edx, edx
je 0x45da10
cmp dword [ebp - 0x1c], 0
jne 0x45da10
cmp dword [ebp - 0x14], 0xc
je 0x45da10
cmp dword [ebp - 0x14], 0xe
je 0x45da10
mov esi, dword [edx]
or cl, 0xc
mov byte [ebp + 0xc], cl
mov ecx, dword [edx + 4]
mov dword [ebp - 0x24], ecx
cmp ecx, dword [esi]
mov esi, dword [ebp - 0xc]
jge 0x45da0d
mov eax, dword [edx]
mov esi, ecx
mov edi, dword [ebp + 8]
imul ecx, esi, 0x18
mov dword [ebp - 0x24], ecx
movzx eax, word [ecx + eax + 0x1c]
test eax, eax
jle 0x45d9f7
mov cx, si
sub cx, word [edx + 4]
inc cx
imul eax, eax, 0x18
mov word [eax + edi + 4], cx
mov ecx, dword [ebp - 0x24]
mov eax, dword [edx]
inc esi
add ecx, 0x18
mov dword [ebp - 0x24], ecx
cmp esi, dword [eax]
jl 0x45d9da
mov edi, dword [ebp - 0x2c]
mov esi, dword [ebp - 0xc]
mov eax, dword [ebp - 4]
mov dword [ebp - 0x20], ebx
push dword [ebp + 0xc]
mov edx, dword [ebp + 8]
mov ecx, esi
push ebx
push eax
call fcn.0044b192
add esp, 0xc
mov ebx, eax
mov eax, dword [ebp - 4]
cmp dword [ebp - 0x1c], 0
je 0x45db68
mov edx, dword [ebp + 0x14]
movzx ecx, byte [edx + 1]
dec ecx
je 0x45db46
dec ecx
je 0x45da56
mov edx, dword [edx + 4]
mov ecx, esi
push eax
push ebx
push dword [ebp + 0x1c]
call fcn.0045d805
jmp 0x45db41
mov eax, dword [esi + 0x2c]
lea ecx, [eax + 1]
add eax, ebx
mov dword [ebp - 0x1c], ecx
mov ecx, edi
mov dword [esi + 0x2c], eax
mov edx, dword [edx + 8]
call fcn.0043a38a
mov edx, dword [ebp + 0x14]
mov ecx, edi
mov edx, dword [edx + 8]
call fcn.0043a512
mov ecx, dword [ebp - 0x1c]
mov dword [eax + 8], ecx
mov ecx, edi
mov byte [eax], 0x3b
mov dword [eax + 4], 1
call fcn.0043a10e
and dword [ebp + 0xc], 0
add eax, ebx
mov dword [ebp - 0x2c], eax
test ebx, ebx
jle 0x45db2d
mov edx, dword [ebp + 8]
mov eax, dword [ebp - 4]
add edx, 8
mov ecx, dword [ebp - 0x1c]
sub ecx, eax
mov dword [ebp + 0x14], eax
mov dword [ebp - 0x24], edx
mov dword [ebp + 8], ecx
mov edx, dword [edx]
mov ecx, esi
call fcn.004475a5
mov dword [ebp - 0x30], eax
lea eax, [ebx - 1]
cmp dword [ebp + 0xc], eax
jge 0x45dadf
mov eax, dword [ebp + 0x14]
mov ecx, dword [ebp + 8]
add ecx, eax
push ecx
push dword [ebp - 0x2c]
push eax
push 0x4d
jmp 0x45daee
mov ecx, dword [ebp + 0x14]
mov eax, dword [ebp + 8]
add eax, ecx
push eax
push dword [ebp + 0x1c]
push ecx
push 0x4e
pop edx
mov ecx, edi
call fcn.00439d0e
add esp, 0xc
or edx, 0xffffffff
mov ecx, edi
push 0xfffffffffffffffe
push dword [ebp - 0x30]
call fcn.0043a44a
pop ecx
pop ecx
mov edx, 0x80
mov ecx, edi
call fcn.0043a22b
mov eax, dword [ebp + 0xc]
mov edx, dword [ebp - 0x24]
inc eax
add edx, 0x18
mov dword [ebp + 0xc], eax
inc dword [ebp + 0x14]
mov dword [ebp - 0x24], edx
cmp eax, ebx
jl 0x45daba
lea eax, [ebx - 1]
mov ecx, edi
push eax
push dword [ebp - 0x1c]
push dword [ebp - 4]
push 0x40
pop edx
call fcn.00439d0e
add esp, 0xc
jmp 0x45db50
mov edx, dword [edx + 8]
mov ecx, edi
call fcn.0043a38a
mov eax, dword [ebp + 0x10]
test eax, eax
jne 0x45db6b
mov eax, dword [ebp - 0x18]
mov ecx, edi
push dword [ebp + 0x1c]
mov edx, dword [eax + 0x10]
call fcn.0045d7eb
pop ecx
mov eax, dword [ebp + 0x10]
mov ecx, dword [ebp - 0x14]
lea edx, [ecx - 1]
cmp edx, 0xd
ja case.0x45db7a.4
jmp dword [edx*4 + 0x45dede]
mov ecx, esi
call fcn.0044bffb
mov esi, eax
mov ecx, edi
push esi
push ebx
push dword [ebp - 4]
push 0x63
pop edx
call fcn.00439d0e
mov eax, dword [ebp - 8]
add esp, 0xc
push ebx
push dword [ebp - 4]
push esi
push eax
push 0x7e
pop edx
mov ecx, edi
call fcn.00439f0f
mov ecx, dword [ebp - 0xc]
add esp, 0x10
mov edx, esi
call fcn.0044c01a
jmp case.0x45db7a.4
mov eax, dword [ebp - 8]
mov ecx, edi
push ebx
push dword [ebp - 4]
push eax
push 0x7f
pop edx
call fcn.00439d0e
add esp, 0xc
jmp case.0x45db7a.4
mov eax, dword [ebp - 0x10]
mov ecx, esi
inc eax
mov edx, eax
mov dword [ebp + 0x14], eax
call fcn.0044c05d
mov ecx, eax
mov eax, dword [ebp - 0x10]
add eax, ecx
mov dword [ebp + 0x18], ecx
push eax
push ebx
push dword [ebp - 4]
mov ecx, edi
mov dword [ebp + 8], eax
push 0x63
pop edx
call fcn.00439d0e
add esp, 0xc
cmp dword [ebp - 0x14], 6
jne 0x45dc45
mov esi, dword [ebp - 8]
mov ecx, edi
push 0
push dword [ebp + 0x18]
inc esi
call fcn.0043a10e
add eax, 4
push eax
push esi
push 0x1e
pop edx
call fcn.00439f0f
push ebx
push dword [ebp - 4]
mov ecx, edi
push dword [ebp + 0x18]
push esi
push 0x7e
pop edx
call fcn.00439f0f
mov esi, dword [ebp - 0xc]
add esp, 0x20
mov ebx, dword [ebp + 0x10]
mov ecx, esi
test ebx, ebx
je 0x45dc68
push dword [ebp - 0x10]
mov edx, ebx
push 1
push dword [ebp - 4]
push dword [ebp + 8]
push dword [ebp - 0x18]
call fcn.0045d4c6
add esp, 0x14
jmp 0x45dca7
call fcn.0044bffb
mov esi, eax
mov ecx, edi
push esi
push dword [ebp - 8]
push 0x73
pop edx
call fcn.00439d92
push esi
push dword [ebp + 0x18]
mov ecx, edi
push dword [ebp - 8]
push 0x74
pop edx
call fcn.00439d0e
add esp, 0x14
mov ecx, edi
push 8
pop edx
call fcn.0043a22b
mov edx, esi
mov esi, dword [ebp - 0xc]
mov ecx, esi
call fcn.0044c01a
push dword [ebp + 0x14]
mov edx, dword [ebp + 0x18]
mov ecx, esi
call fcn.0044c093
pop ecx
jmp 0x45deb5
test eax, eax
je 0x45dcdd
mov ecx, dword [ebp - 0x10]
mov edx, eax
push ecx
push ebx
push dword [ebp - 0x20]
mov ecx, esi
push dword [ebp - 4]
push dword [ebp - 0x18]
call fcn.0045d4c6
add esp, 0x14
jmp case.0x45db7a.4
mov ecx, esi
call fcn.0044bffb
mov esi, eax
mov ecx, edi
mov eax, dword [ebp + 0x18]
push ebx
push dword [eax + 0x10]
push esi
push ebx
push dword [ebp - 4]
push 0x63
pop edx
call fcn.00439e58
mov edx, dword [ebp - 4]
add esp, 0x14
mov ecx, dword [ebp - 0xc]
push ebx
call fcn.0044a2ff
pop ecx
push ebx
push dword [ebp - 4]
push esi
push dword [ebp - 8]
jmp 0x45dba5
push dword [ebp - 8]
mov ecx, edi
push 1
push 0x38
pop edx
call fcn.00439d92
pop ecx
jmp 0x45deb1
test eax, eax
je 0x45deb9
jmp 0x45dcbe
test eax, eax
jne 0x45dcbe
cmp ecx, 0xd
mov ecx, edi
jne 0x45dd57
mov eax, dword [ebp + 0x18]
push dword [eax + 4]
push 0x10
pop edx
call fcn.00439d7e
pop ecx
jmp 0x45deb9
push ebx
push dword [ebp - 4]
push 0x43
pop edx
call fcn.00439d92
mov edx, dword [ebp - 4]
mov ecx, esi
push ebx
call fcn.0044a2ff
jmp 0x45dbd3
xor eax, eax
mov ecx, esi
mov dword [ebp - 0x24], eax
mov eax, dword [ebp + 0x18]
mov eax, dword [eax + 0x14]
mov dword [ebp - 0x30], eax
mov edx, dword [eax]
mov dword [ebp + 0x18], edx
call fcn.0044bffb
lea edx, [edx + 2]
mov dword [ebp + 0x14], eax
call fcn.0044c05d
mov dword [ebp + 8], eax
add eax, dword [ebp + 0x18]
mov dword [ebp - 0x2c], eax
inc eax
cmp dword [ebp - 0x14], 8
mov dword [ebp + 0xc], eax
jne 0x45ddc9
mov eax, dword [ebp - 8]
mov ecx, edi
push ebx
push dword [ebp - 4]
inc eax
push 0
push eax
push 0x1e
pop edx
call fcn.00439f0f
mov dword [ebp - 0x24], eax
add esp, 0x10
mov eax, dword [ebp + 0xc]
push eax
push ebx
mov ebx, dword [ebp - 4]
mov ecx, edi
push ebx
push 0x63
pop edx
call fcn.00439d0e
add esp, 0xc
cmp dword [ebp - 0x14], 8
jne 0x45de00
push dword [ebp + 0xc]
mov eax, dword [ebp - 8]
mov ecx, edi
inc eax
push eax
push 0x7e
pop edx
call fcn.00439d92
pop ecx
pop ecx
push 0x10
pop edx
mov ecx, edi
call fcn.0043a22b
cmp dword [ebp + 0x18], 0
jle 0x45de42
mov ecx, dword [ebp - 0x30]
mov esi, dword [ebp + 8]
add ecx, 0x1c
mov dword [ebp + 0xc], ecx
xor eax, eax
add eax, esi
push eax
movzx eax, word [ecx]
mov ecx, edi
dec eax
add eax, ebx
push eax
push 0x41
pop edx
call fcn.00439d92
mov eax, dword [ebp - 0x28]
pop ecx
pop ecx
mov ecx, dword [ebp + 0xc]
inc eax
add ecx, 0x18
mov dword [ebp - 0x28], eax
mov dword [ebp + 0xc], ecx
cmp eax, dword [ebp + 0x18]
jl 0x45de14
mov esi, dword [ebp - 0xc]
push dword [ebp - 0x2c]
mov ebx, dword [ebp - 8]
mov ecx, edi
push ebx
push 0x72
pop edx
call fcn.00439d92
push dword [ebp + 0x14]
mov eax, dword [ebp + 0x18]
mov ecx, edi
add eax, 2
push eax
push dword [ebp + 8]
push 0x63
pop edx
call fcn.00439d0e
mov eax, dword [ebp + 0x18]
add esp, 0x14
add eax, 2
mov ecx, edi
push eax
push dword [ebp + 8]
push dword [ebp + 0x14]
push ebx
push 0x7e
pop edx
call fcn.00439f0f
mov eax, dword [ebp - 0x24]
add esp, 0x10
test eax, eax
je 0x45de98
mov edx, eax
mov ecx, edi
call fcn.0043a243
mov edx, dword [ebp + 0x14]
mov ecx, esi
call fcn.0044c01a
mov eax, dword [ebp + 0x18]
mov edx, dword [ebp + 8]
add eax, 2
push eax
call fcn.0044c093
pop ecx
mov ebx, dword [ebp + 0x10]
test ebx, ebx
jne 0x45ded4
mov eax, dword [ebp - 0x18]
cmp dword [eax + 0xc], 0
je 0x45ded4
push dword [ebp + 0x20]
mov ecx, edi
push dword [eax + 0xc]
push 0x30
pop edx
call fcn.00439d92
pop ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret