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

Disassembly:
push 0xffffffffffffffff
push 0x4766d0
mov eax, dword fs:[0]
push eax
sub esp, 0xed0
mov eax, dword [0x4921c0]
xor eax, esp
mov dword [esp + 0xec8], eax
push ebx
push ebp
push esi
push edi
mov eax, dword [0x4921c0]
xor eax, esp
push eax
lea eax, [esp + 0xee4]
mov dword fs:[0], eax
mov eax, dword [esp + 0xef4]
mov ebp, dword [esp + 0xef8]
xor edi, edi
mov dword [esp + 0xa0], ecx
mov esi, edx
xor ecx, ecx
mov dword [esp + 0x8c], esi
mov dword [esp + 0x90], ebp
mov dword [esp + 0x48], edi
cmp dword [0x58ce2c], edi
je 0x444880
mov byte [esp + 0x224], 0x40
lea esp, [esp]
mov dl, byte [ecx + 0x5370c8]
mov byte [esp + ecx + 0x225], dl
inc ecx
test dl, dl
jne 0x4447d0
mov dword [esp + 0x48], 0xfffffc7c
lea edx, [esp + 0x324]
sub edx, eax
mov cl, byte [eax]
mov byte [edx + eax], cl
inc eax
test cl, cl
jne 0x4447f3
mov ecx, dword [0x4935ec]
lea eax, [ecx + ecx*2]
lea eax, [eax*8 + 7]
cdq
and edx, 7
add eax, edx
sar eax, 3
add eax, 3
cdq
and edx, 3
add eax, edx
sar eax, 2
add eax, eax
add eax, eax
mov dword [esp + 0xb0], eax
cmp dword [0x58cb0c], edi
jne 0x444897
mov edx, dword [0x540990]
mov eax, dword [0x52b5bc]
mov ebx, dword [0x4ea660]
mov dword [esp + 0xa4], edx
mov edx, dword [0x4a86cc]
mov dword [esp + 0xbc], eax
mov eax, dword [0x4eab80]
mov dword [esp + 0x34], edx
mov edx, dword [0x4eab8c]
mov dword [esp + 0x3c], eax
mov dword [esp + 0x30], edx
mov dword [esp + 0x44], ebx
jmp 0x444917
mov dl, byte [ecx + 0x5370c8]
mov byte [esp + ecx + 0x224], dl
inc ecx
test dl, dl
jne 0x444880
jmp 0x4447ea
mov eax, dword [0x541c84]
mov edx, dword [0x4ebed4]
mov ebx, dword [0x4a85b0]
mov dword [esp + 0xbc], eax
mov eax, dword [0x4ea33c]
mov dword [esp + 0xa4], edx
mov edx, dword [0x541748]
mov dword [esp + 0x34], eax
mov eax, dword [0x4eb53c]
mov dword [esp + 0x3c], edx
mov dword [esp + 0x30], eax
mov dword [esp + 0x44], ebx
cmp dword [0x58caf4], edi
jne 0x444917
xor eax, eax
mov dword [0x58caf4], 1
mov dword [0x498484], edi
call fcn.00454390
mov dword [0x498484], 1
call fcn.0043f620
push edi
push edi
push 1
xor edx, edx
mov ecx, esi
call fcn.0045cc30
mov ecx, dword [0x4935ec]
mov eax, dword [ebp]
cmp eax, edi
jge 0x444922
neg eax
jmp 0x44492f
imul eax, dword [0x4a86cc]
add eax, dword [0x4e8fc8]
mov edx, dword [esp + 0xa0]
mov ebp, dword [edx]
cmp ebp, edi
mov dword [esp + 0x24], eax
jge 0x444944
neg ebp
jmp 0x444951
imul ebp, dword [0x4eab80]
add ebp, dword [0x4ea550]
mov eax, dword [0x4937f0]
mov dword [esp + 0x58], ebp
cmp dword [0x58cb0c], edi
jne 0x444980
mov edx, dword [0x4eaba0]
mov edi, dword [0x541434]
mov esi, dword [0x538594]
mov dword [esp + 0x64], edx
mov edx, dword [0x539458]
jmp 0x44498a
mov dword [esp + 0x64], edi
lea esi, [ecx - 1]
lea edx, [eax - 1]
mov dword [esp + 0x80], edx
mov dword [esp + 0x84], esi
mov dword [esp + 0x5c], edi
test esi, esi
jge 0x4449a9
xor esi, esi
mov dword [esp + 0x84], esi
test edx, edx
jge 0x4449b6
xor edx, edx
mov dword [esp + 0x80], edx
dec ecx
cmp esi, ecx
jle 0x4449c4
mov esi, ecx
mov dword [esp + 0x84], esi
dec eax
cmp edx, eax
jle 0x4449d2
mov edx, eax
mov dword [esp + 0x80], edx
test edi, edi
jge 0x4449de
mov dword [esp + 0x5c], 0
cmp dword [esp + 0x64], 0
jge 0x4449ed
mov dword [esp + 0x64], 0
cmp dword [esp + 0x5c], ecx
jle 0x4449f7
mov dword [esp + 0x5c], ecx
mov edi, dword [esp + 0x64]
cmp edi, eax
jle 0x444a05
mov edi, eax
mov dword [esp + 0x64], edi
mov eax, esi
sub eax, dword [esp + 0x5c]
mov ecx, edx
sub ecx, edi
inc eax
inc ecx
test eax, eax
jle 0x445831
test ecx, ecx
jle 0x445831
mov eax, dword [esp + 0x8c]
mov eax, dword [eax + 0x10]
push eax
mov dword [esp + 0x90], eax
mov dword [esp + 0x9c], eax
call dword [0x47828c]
mov dword [esp + 0x94], eax
mov dword [esp + 0xeec], 0
mov eax, dword [0x494dc4]
cdq
idiv dword [0x494de4]
cmp dword [0x494dd8], 1
jne 0x444a6c
cdq
sub eax, edx
sar eax, 1
mov ecx, dword [esp + 0x30]
mov edi, dword [0x478044]
lea ecx, [ecx + ecx*2]
cmp eax, ecx
mov dword [esp + 0x6c], ecx
jl 0x444a8c
lea esi, [ebx + ebx*2]
cmp dword [0x494dc8], esi
jge 0x444aca
mov ecx, dword [esp + 0x6c]
lea esi, [ebx + ebx*2]
push esi
push ecx
mov eax, 0x494b60
call fcn.004023f0
mov edx, dword [0x494d78]
push 0xffffff
push edx
call dword [0x478038]
mov eax, dword [0x494d78]
push 2
push eax
call edi
mov ecx, dword [0x494d78]
push 0
push ecx
call dword [0x478040]
cmp dword [0x58cb0c], 0
mov eax, dword [0x4ebed4]
jne 0x444add
mov eax, dword [0x540990]
neg eax
sbb eax, eax
and eax, 0x2bc
cmp dword [0x58cb80], 0
jne 0x444b21
lea edx, [esp + 0x224]
push edx
push 1
push 0
push 0
push 0
push 0x86
push 0
push 0
push 0
push eax
mov eax, dword [esp + 0x70]
push eax
push eax
mov eax, dword [esp + 0x9c]
cdq
sub eax, edx
sar eax, 1
push eax
push esi
jmp 0x444b4e
lea ecx, [esp + 0x224]
push ecx
push 1
push 0
push 0
push 0
push 0x86
push 0
push 0
push 0
push eax
mov eax, dword [esp + 0x70]
push eax
push eax
mov eax, dword [esp + 0x60]
cdq
sub eax, edx
sar eax, 1
push eax
push ebx
call dword [0x47803c]
xor ebx, ebx
push eax
cmp dword [0x58cb80], ebx
jne 0x444b75
mov edx, dword [0x494d78]
push edx
call dword [0x478054]
push eax
call dword [0x47806c]
jmp 0x444b93
mov eax, dword [0x493b50]
push eax
call dword [0x478054]
push eax
call dword [0x47806c]
mov ecx, dword [0x493b50]
push 1
push ecx
call edi
mov al, byte [0x482ada]
mov ecx, dword [esp + 0xefc]
mov dx, word [0x482ad8]
mov byte [esp + 0x1a], al
mov eax, ecx
mov word [esp + 0x18], dx
cdq
and edx, 0xffff
add eax, edx
mov esi, eax
sar esi, 0x10
and ecx, 0x8000ffff
mov dword [esp + 0x38], ebx
mov dword [esp + 0xb4], esi
jns 0x444bda
dec ecx
or ecx, 0xffff0000
inc ecx
mov eax, ecx
cdq
and edx, 0xff
add edx, eax
sar edx, 8
and ecx, 0x800000ff
mov dword [esp + 0xc0], edx
jns 0x444bff
dec ecx
or ecx, 0xffffff00
inc ecx
mov edi, dword [esp + 0x34]
mov eax, esi
mov esi, dword [0x58ce2c]
shl eax, 8
add eax, 0x498588
mov dword [esp + 0x9c], eax
mov eax, edx
shl eax, 8
add eax, 0x498588
mov dword [esp + 0x88], eax
mov eax, ecx
shl eax, 8
add eax, 0x498588
mov dword [esp + 0x74], ebx
mov ebx, dword [esp + 0x24]
mov dword [esp + 0xb8], ecx
mov dword [esp + 0xac], eax
mov edx, dword [0x58cb0c]
mov ecx, dword [esp + 0x38]
mov al, byte [esp + ecx + 0x324]
mov byte [esp + 0x53], al
test al, al
je 0x4457d6
cmp al, 9
je 0x4457d0
cmp al, 0x20
je 0x4457d0
lea ecx, [ebx + edi]
cmp ecx, dword [esp + 0x5c]
mov dword [esp + 0x7c], ecx
jl 0x4457f1
mov ecx, dword [esp + 0x3c]
add ecx, ebp
cmp ecx, dword [esp + 0x64]
mov dword [esp + 0x48], ecx
jl 0x4457f1
cmp ebx, dword [esp + 0x84]
jg 0x4457f1
cmp ebp, dword [esp + 0x80]
jg 0x4457f1
mov ecx, dword [esp + 0x38]
mov cl, byte [esp + ecx + 0x325]
mov byte [esp + 0x18], al
mov byte [esp + 0x19], cl
test al, al
je 0x445815
test cl, cl
je 0x445815
mov eax, dword [0x58cb80]
neg esi
sbb esi, esi
and esi, edi
cmp eax, 1
jne 0x444dae
mov eax, dword [esp + 0x7c]
mov ecx, dword [esp + 0x48]
mov dword [esp + 0xc4], ebx
mov dword [esp + 0xc8], ebp
mov dword [esp + 0xcc], eax
mov dword [esp + 0xd0], ecx
test edx, edx
jne 0x444d22
lea eax, [esp + 0xc4]
call fcn.00454390
movzx edx, byte [esp + 0xb8]
movzx eax, byte [esp + 0xc0]
movzx ecx, byte [esp + 0xb4]
shl edx, 8
or edx, eax
shl edx, 8
or edx, ecx
push edx
mov edx, dword [0x493b50]
push edx
call dword [0x478038]
mov eax, dword [esp + 0x3c]
mov edx, dword [0x494848]
push eax
push edi
push ebp
add esi, ebx
push esi
push 0x493938
mov eax, ebp
mov ecx, esi
call fcn.00401ee0
mov edx, dword [0x493b50]
push 2
lea ecx, [esp + 0x1c]
push ecx
push ebp
push esi
push edx
call dword [0x47804c]
mov eax, dword [0x493b50]
mov ecx, dword [esp + 0x3c]
mov edx, dword [esp + 0x94]
push 0xcc0020
push ebp
push esi
push eax
push ecx
push edi
push ebp
push esi
push edx
call dword [0x478060]
jmp 0x4455ee
cmp eax, 2
jne 0x444f00
lea eax, [edi + 2]
add eax, ebx
mov dword [esp + 0xec], eax
mov eax, dword [esp + 0x3c]
add eax, 2
add eax, ebp
mov dword [esp + 0xe4], ebx
mov dword [esp + 0xe8], ebp
mov dword [esp + 0xf0], eax
test edx, edx
jne 0x444df1
lea eax, [esp + 0xe4]
call fcn.00454390
mov eax, dword [esp + 0x24]
mov edx, dword [0x494848]
add esi, eax
mov eax, dword [esp + 0x3c]
add eax, 2
push eax
mov eax, dword [esp + 0x38]
add eax, 2
push eax
push ebp
push esi
push 0x493938
mov eax, ebp
mov ecx, esi
call fcn.00401ee0
mov ecx, dword [0x493b50]
push 0
push ecx
call dword [0x478038]
mov eax, dword [0x493b50]
push 2
lea edx, [esp + 0x1c]
push edx
push ebp
lea edi, [esi + 1]
push edi
push eax
call dword [0x47804c]
mov edx, dword [0x493b50]
push 2
lea ecx, [esp + 0x1c]
push ecx
lea ebx, [ebp + 1]
push ebx
push esi
push edx
call dword [0x47804c]
mov edx, dword [0x493b50]
push 2
lea eax, [esp + 0x1c]
push eax
push ebx
lea ecx, [esi + 2]
push ecx
push edx
call dword [0x47804c]
mov edx, dword [0x493b50]
push 2
lea eax, [esp + 0x1c]
push eax
lea ecx, [ebp + 2]
push ecx
push edi
push edx
call dword [0x47804c]
movzx eax, byte [esp + 0xb8]
movzx ecx, byte [esp + 0xc0]
movzx edx, byte [esp + 0xb4]
shl eax, 8
or eax, ecx
shl eax, 8
or eax, edx
push eax
mov eax, dword [0x493b50]
push eax
call dword [0x478038]
mov edx, dword [0x493b50]
push 2
lea ecx, [esp + 0x1c]
push ecx
push ebx
push edi
push edx
call dword [0x47804c]
mov eax, dword [0x493b50]
push 0xcc0020
push ebp
push esi
push eax
mov eax, dword [esp + 0x4c]
add eax, 2
mov ecx, dword [esp + 0xa4]
push eax
mov eax, dword [esp + 0x48]
add eax, 2
push eax
push ebp
push esi
push ecx
jmp 0x4455e0
mov edx, dword [0x494dc8]
push edx
mov ecx, 0x494b60
call fcn.00401f70
push eax
push 0
push 0
xor eax, eax
mov edi, 0x494b60
call fcn.00401f10
cmp dword [0x58ce2c], 0
mov esi, dword [0x47804c]
push 2
je 0x444f65
mov edi, dword [esp + 0x70]
mov ecx, dword [0x494d78]
lea eax, [esp + 0x1c]
push eax
push 0
push edi
push ecx
call esi
cmp dword [esp + 0xa4], 0
je 0x444f95
mov eax, dword [0x494d78]
push 2
lea edx, [esp + 0x1c]
push edx
push 0
inc edi
push edi
push eax
jmp 0x444f93
mov edx, dword [0x494d78]
lea ecx, [esp + 0x1c]
push ecx
push 0
push 0
push edx
call esi
cmp dword [esp + 0xa4], 0
je 0x444f95
mov ecx, dword [0x494d78]
push 2
lea eax, [esp + 0x1c]
push eax
push 0
push 1
push ecx
call esi
cmp dword [0x58cb0c], 0
mov edx, dword [esp + 0x7c]
mov eax, dword [esp + 0x48]
mov dword [esp + 0xd4], ebx
mov dword [esp + 0xd8], ebp
mov dword [esp + 0xdc], edx
mov dword [esp + 0xe0], eax
jne 0x444fce
lea eax, [esp + 0xd4]
call fcn.00454390
mov ecx, dword [esp + 0x3c]
mov edx, dword [esp + 0x34]
mov edi, dword [esp + 0x24]
push ecx
push edx
mov edx, dword [0x494848]
push ebp
push edi
push 0x493938
mov eax, ebp
mov ecx, edi
call fcn.00401ee0
mov ebx, dword [0x4937f0]
mov edx, dword [esp + 0xb0]
mov eax, ebx
sub eax, ebp
dec eax
mov esi, eax
imul esi, edx
lea ecx, [edi + edi*2]
add esi, ecx
mov ecx, dword [0x4935ec]
imul eax, ecx
add eax, edi
mov dword [esp + 0x40], eax
mov eax, dword [esp + 0x30]
add ecx, eax
mov dword [esp + 0x70], ecx
mov ecx, dword [esp + 0x6c]
add ecx, edx
mov dword [esp + 0xa8], ecx
mov ecx, 0x494b60
call fcn.00401f70
lea eax, [eax + eax*2]
lea eax, [eax*8 + 7]
cdq
and edx, 7
add eax, edx
sar eax, 3
add eax, 3
cdq
and edx, 3
add eax, edx
mov edx, dword [esp + 0x6c]
mov ecx, dword [0x494dbc]
mov edi, eax
sar edi, 2
add edi, edi
add edi, edi
lea eax, [edx + edi]
mov edx, dword [0x49581c]
mov dword [esp + 0x60], edx
mov edx, dword [0x494dc8]
dec edx
imul edx, edi
cmp dword [0x58ccb4], 0
lea eax, [eax + eax*2]
mov dword [esp + 0x78], ecx
mov ecx, dword [0x493b94]
mov dword [esp + 0x54], eax
mov dword [esp + 0x68], edx
je 0x445389
cmp dword [0x52b5bc], 0
je 0x445389
sub ebx, dword [0x547cf4]
mov eax, dword [0x5478c4]
sub ebx, ebp
dec ebx
imul ebx, dword [esp + 0xb0]
mov dword [esp + 0x28], ebx
mov ebx, dword [esp + 0x24]
add eax, ebx
lea ebx, [eax + eax*2]
mov eax, dword [esp + 0x28]
add eax, ebx
cmp dword [esp + 0x44], 0
mov dword [esp + 0x2c], edx
jle 0x4451ea
mov ebx, dword [esp + 0x44]
mov dword [esp + 0x28], ebx
mov ebx, dword [esp + 0x30]
test ebx, ebx
jle 0x4451d0
mov edx, dword [esp + 0x2c]
mov ebp, dword [esp + 0x78]
lea ebp, [edx + ebp + 6]
mov dword [esp + 0x1c], ebp
mov ebp, 3
sub ebp, edi
lea edx, [edx + ebp*2]
mov ebp, dword [esp + 0x2c]
add edx, dword [esp + 0x78]
add ebp, ebx
mov dword [esp + 0x4c], ebx
lea ebx, [ebp + ebx*8]
mov dword [esp + 0x2c], ebx
nop
movzx ebp, byte [edx + edi]
movzx ebx, byte [edi + edx - 3]
lea ebx, [ebp + ebx*2]
movzx ebp, byte [edi + edx - 6]
add ebx, ebp
movzx ebp, byte [edx - 3]
add ebx, ebp
mov ebp, dword [esp + 0x1c]
movzx ebp, byte [ebp - 3]
add ebx, ebp
movzx ebp, byte [edx - 6]
lea ebp, [ebp + ebx*2]
mov ebx, dword [esp + 0x1c]
movzx ebx, byte [ebx - 6]
add ebp, ebx
movzx ebx, byte [edx]
add ebp, ebx
mov ebx, dword [esp + 0x1c]
movzx ebx, byte [ebx]
add ebp, ebx
movzx ebx, byte [eax + ecx]
shl ebx, 8
sar ebp, 4
sub ebx, ebp
movzx ebx, byte [ebx + 0x498687]
mov byte [eax + ecx], bl
movzx ebx, byte [eax + ecx + 1]
inc eax
add dword [esp + 0x1c], 9
shl ebx, 8
sub ebx, ebp
movzx ebx, byte [ebx + 0x498687]
mov byte [eax + ecx], bl
movzx ebx, byte [eax + ecx + 1]
inc eax
shl ebx, 8
sub ebx, ebp
movzx ebx, byte [ebx + 0x498687]
mov byte [eax + ecx], bl
inc eax
add edx, 9
sub dword [esp + 0x4c], 1
jne 0x445130
mov ebp, dword [esp + 0x58]
mov edx, dword [esp + 0x68]
mov ebx, dword [esp + 0x54]
sub eax, dword [esp + 0xa8]
sub dword [esp + 0x2c], ebx
sub dword [esp + 0x28], 1
jne 0x4450f3
mov eax, dword [esp + 0x44]
test eax, eax
jle 0x44557a
mov ebx, dword [esp + 0x78]
mov dword [esp + 0x2c], eax
cmp dword [esp + 0x30], 0
jle 0x445366
mov ebp, 3
sub ebp, edi
lea ebp, [edx + ebp*2]
lea eax, [edx + ebx + 6]
add ebp, ebx
mov ebx, dword [esp + 0x30]
add edx, ebx
lea edx, [edx + ebx*8]
mov dword [esp + 0x28], eax
mov dword [esp + 0x4c], ebx
mov dword [esp + 0x68], edx
movzx ebx, byte [edi + ebp - 6]
movzx edx, byte [edi + ebp - 3]
lea edx, [ebx + edx*2]
movzx ebx, byte [edi + ebp]
add edx, ebx
movzx ebx, byte [ebp - 3]
add edx, ebx
movzx ebx, byte [eax - 3]
add edx, ebx
movzx ebx, byte [ebp - 6]
lea edx, [ebx + edx*2]
movzx ebx, byte [eax - 6]
movzx eax, byte [eax]
add edx, ebx
movzx ebx, byte [ebp]
add edx, ebx
mov ebx, dword [0x58cb24]
add edx, eax
mov eax, dword [esp + 0x40]
inc eax
sar edx, 4
mov byte [ebx + eax - 1], dl
mov dword [esp + 0x40], eax
mov eax, dword [esp + 0xac]
mov bl, byte [edx + eax]
movzx eax, byte [ecx + esi]
shl eax, 8
sub eax, edx
movzx eax, byte [eax + 0x498687]
mov byte [esp + 0x23], bl
movzx ebx, bl
add eax, ebx
mov ebx, dword [esp + 0x60]
mov dword [esp + 0x1c], eax
mov al, byte [esp + 0x23]
mov byte [ebx + esi], al
mov eax, dword [esp + 0x1c]
cmp eax, 0xff
jle 0x4452bd
mov eax, 0xff
mov byte [ecx + esi], al
mov eax, dword [esp + 0x88]
mov bl, byte [edx + eax]
movzx eax, byte [ecx + esi + 1]
inc esi
shl eax, 8
sub eax, edx
movzx eax, byte [eax + 0x498687]
movzx ebx, bl
add eax, ebx
mov ebx, dword [esp + 0x60]
mov dword [esp + 0x1c], eax
mov eax, dword [esp + 0x88]
mov al, byte [edx + eax]
mov byte [ebx + esi], al
mov eax, dword [esp + 0x1c]
cmp eax, 0xff
jle 0x445306
mov eax, 0xff
mov byte [ecx + esi], al
mov eax, dword [esp + 0x9c]
mov bl, byte [edx + eax]
movzx eax, byte [ecx + esi + 1]
inc esi
shl eax, 8
sub eax, edx
movzx eax, byte [eax + 0x498687]
movzx edx, bl
add eax, edx
cmp eax, 0xff
mov edx, dword [esp + 0x60]
mov byte [edx + esi], bl
jle 0x44533d
mov eax, 0xff
mov byte [ecx + esi], al
mov eax, dword [esp + 0x28]
add eax, 9
inc esi
add ebp, 9
sub dword [esp + 0x4c], 1
mov dword [esp + 0x28], eax
jne 0x44522e
mov ebp, dword [esp + 0x58]
mov ebx, dword [esp + 0x78]
mov edx, dword [esp + 0x68]
mov eax, dword [esp + 0x70]
sub esi, dword [esp + 0xa8]
sub dword [esp + 0x40], eax
sub edx, dword [esp + 0x54]
sub dword [esp + 0x2c], 1
jne 0x4451fe
jmp 0x44557a
cmp dword [esp + 0x44], 0
jle 0x44557a
mov eax, dword [esp + 0x44]
mov dword [esp + 0x2c], eax
cmp dword [esp + 0x30], 0
jle 0x44555c
mov ebx, dword [esp + 0x78]
mov ebp, 3
sub ebp, edi
lea ebp, [edx + ebp*2]
lea eax, [edx + ebx + 6]
add ebp, ebx
mov ebx, dword [esp + 0x30]
add edx, ebx
lea edx, [edx + ebx*8]
mov dword [esp + 0x28], eax
mov dword [esp + 0x4c], ebx
mov dword [esp + 0x68], edx
movzx ebx, byte [edi + ebp - 6]
movzx edx, byte [edi + ebp - 3]
lea edx, [ebx + edx*2]
movzx ebx, byte [edi + ebp]
add edx, ebx
movzx ebx, byte [ebp - 3]
add edx, ebx
movzx ebx, byte [eax - 3]
add edx, ebx
movzx ebx, byte [ebp - 6]
lea edx, [ebx + edx*2]
movzx ebx, byte [eax - 6]
movzx eax, byte [eax]
add edx, ebx
movzx ebx, byte [ebp]
add edx, ebx
mov ebx, dword [0x58cb24]
add edx, eax
mov eax, dword [esp + 0x40]
inc eax
sar edx, 4
mov byte [ebx + eax - 1], dl
mov dword [esp + 0x40], eax
mov eax, dword [esp + 0xac]
mov bl, byte [edx + eax]
movzx eax, byte [ecx + esi]
shl eax, 8
sub eax, edx
movzx eax, byte [eax + 0x498687]
mov byte [esp + 0x23], bl
movzx ebx, bl
add eax, ebx
mov ebx, dword [esp + 0x60]
mov dword [esp + 0x1c], eax
mov al, byte [esp + 0x23]
mov byte [ebx + esi], al
mov eax, dword [esp + 0x1c]
cmp eax, 0xff
jle 0x44545f
mov eax, 0xff
mov byte [ecx + esi], al
mov eax, dword [esp + 0x88]
mov bl, byte [edx + eax]
movzx eax, byte [ecx + esi + 1]
inc esi
shl eax, 8
sub eax, edx
movzx eax, byte [eax + 0x498687]
movzx ebx, bl
add eax, ebx
mov ebx, dword [esp + 0x60]
mov dword [esp + 0x1c], eax
mov eax, dword [esp + 0x88]
mov al, byte [edx + eax]
mov byte [ebx + esi], al
mov eax, dword [esp + 0x1c]
cmp eax, 0xff
jle 0x4454a8
mov eax, 0xff
mov byte [ecx + esi], al
mov eax, dword [esp + 0x9c]
mov bl, byte [edx + eax]
movzx eax, byte [ecx + esi + 1]
inc esi
shl eax, 8
sub eax, edx
movzx eax, byte [eax + 0x498687]
movzx ebx, bl
add eax, ebx
mov ebx, dword [esp + 0x60]
mov dword [esp + 0x1c], eax
mov eax, dword [esp + 0x9c]
mov al, byte [edx + eax]
mov byte [ebx + esi], al
mov eax, dword [esp + 0x1c]
cmp eax, 0xff
jle 0x4454f1
mov eax, 0xff
mov byte [ecx + esi], al
inc esi
cmp dword [esp + 0xbc], 0
je 0x44553b
movzx eax, byte [ecx + esi]
shl eax, 8
sub eax, edx
movzx eax, byte [eax + 0x498687]
mov byte [ecx + esi], al
movzx eax, byte [ecx + esi + 1]
shl eax, 8
sub eax, edx
movzx eax, byte [eax + 0x498687]
mov byte [ecx + esi + 1], al
movzx eax, byte [ecx + esi + 2]
shl eax, 8
sub eax, edx
mov dl, byte [eax + 0x498687]
mov byte [ecx + esi + 2], dl
mov eax, dword [esp + 0x28]
add eax, 9
add ebp, 9
sub dword [esp + 0x4c], 1
mov dword [esp + 0x28], eax
jne 0x4453d0
mov edx, dword [esp + 0x68]
mov ebp, dword [esp + 0x58]
mov eax, dword [esp + 0x70]
sub esi, dword [esp + 0xa8]
sub dword [esp + 0x40], eax
sub edx, dword [esp + 0x54]
sub dword [esp + 0x2c], 1
jne 0x44539c
cmp dword [0x52b5bc], 0
je 0x4455ba
cmp dword [0x58ccb4], 0
je 0x4455ba
mov eax, dword [esp + 0x24]
mov ecx, dword [0x493b50]
mov edx, dword [0x547cf4]
push 0xcc0020
push ebp
push eax
push ecx
mov ecx, dword [esp + 0x54]
add edx, ecx
mov ecx, dword [esp + 0x40]
push edx
mov edx, dword [0x5478c4]
add edx, ecx
push edx
jmp 0x4455d6
mov eax, dword [esp + 0x24]
mov ecx, dword [0x493b50]
mov edx, dword [esp + 0x44]
push 0xcc0020
push ebp
push eax
push ecx
mov ecx, dword [esp + 0x40]
push edx
push ecx
mov edx, dword [esp + 0xac]
push ebp
push eax
push edx
call dword [0x478060]
mov edi, dword [esp + 0x34]
mov ebx, dword [esp + 0x24]
mov eax, dword [esp + 0x90]
mov esi, dword [eax]
test esi, esi
jge 0x445629
mov esi, dword [0x58ce2c]
test esi, esi
jne 0x445617
mov ebx, dword [esp + 0x7c]
add dword [esp + 0x38], 2
mov dword [esp + 0x24], ebx
jmp 0x444c4b
mov ebp, dword [esp + 0x48]
add dword [esp + 0x38], 2
mov dword [esp + 0x58], ebp
jmp 0x444c4b
mov ecx, dword [esp + 0x38]
xor edi, edi
xor edx, edx
lea ecx, [esp + ecx + 0x326]
movzx eax, byte [ecx]
test eax, eax
je 0x445676
cmp eax, 0x81
jl 0x44564d
cmp eax, 0x9f
jle 0x445658
lea ebx, [eax - 0xe0]
cmp ebx, 0x1c
ja 0x44566c
mov byte [esp + edi + 0xf4], al
mov al, byte [ecx + 1]
inc ecx
inc edi
mov byte [esp + edi + 0xf4], al
inc edi
inc edx
inc ecx
cmp edx, 0x80
jl 0x445638
mov dword [esp + 0x54], edi
mov byte [esp + edi + 0xf4], 0
xor edi, edi
cmp dword [0x58ce2c], edi
jne 0x445696
mov ecx, dword [esp + 0x7c]
mov dword [esp + 0x24], ecx
jmp 0x44569e
mov ebp, dword [esp + 0x48]
mov dword [esp + 0x58], ebp
mov edx, dword [esp + 0x90]
mov eax, dword [esp + 0x74]
inc esi
mov dword [edx], esi
cmp eax, dword [0x4ea870]
mov dword [esp + 0x28], esi
jge 0x4456bc
inc dword [esp + 0x74]
mov ebx, 3
cmp dword [esp + 0x54], ebx
mov dword [esp + 0x70], 0
mov esi, edi
jle 0x445769
cmp byte [0x58c9c7], 1
je 0x445769
cmp byte [0x4ea348], 0
je 0x44572a
mov al, byte [0x4ea348]
mov dl, byte [esp + edi + 0xf4]
mov ecx, 0x4ea348
lea esp, [esp]
cmp al, dl
jne 0x445710
mov al, byte [ecx + 1]
cmp al, byte [esp + edi + 0xf5]
je 0x44571c
mov al, byte [ecx + 2]
add ecx, 2
test al, al
jne 0x445700
jmp 0x44572a
add edi, 2
add ebx, 2
mov dword [esp + 0x70], 1
cmp byte [0x538f38], 0
je 0x44575e
mov al, byte [0x538f38]
mov dl, byte [esp + esi + 0xf6]
mov ecx, 0x538f38
cmp al, dl
jne 0x445754
mov al, byte [ecx + 1]
cmp al, byte [esp + esi + 0xf7]
je 0x4457c5
mov al, byte [ecx + 2]
add ecx, 2
test al, al
jne 0x445744
cmp dword [esp + 0x70], 0
jne 0x4456c1
mov edx, dword [0x58cb0c]
test edx, edx
jne 0x4457a6
mov ecx, dword [esp + 0x28]
add ecx, edi
cmp ecx, dword [0x4ea870]
jl 0x4457a6
mov eax, dword [0x4e8fc8]
add ebp, dword [0x4eab80]
mov ecx, dword [esp + 0x90]
mov dword [esp + 0x24], eax
mov eax, dword [esp + 0xa0]
mov dword [ecx], edx
inc dword [eax]
mov dword [esp + 0x58], ebp
mov eax, dword [esp + 0x38]
mov edi, dword [esp + 0x34]
mov ebx, dword [esp + 0x24]
mov esi, dword [0x58ce2c]
add eax, 2
mov dword [esp + 0x38], eax
mov al, byte [esp + 0x53]
jmp 0x4457f1
add edi, 2
add ebx, 2
jmp 0x4456c1
inc dword [esp + 0x38]
jmp 0x4457f1
mov ecx, dword [esp + 0x90]
cmp dword [ecx], 0
je 0x4457f1
mov dword [ecx], 0
mov ecx, dword [esp + 0xa0]
inc dword [ecx]
test al, al
jne 0x444c51
mov eax, dword [esp + 0x94]
mov ecx, dword [esp + 0x8c]
push eax
push ecx
call dword [0x4782a0]
mov eax, dword [esp + 0x74]
jmp 0x445833
mov ecx, dword [esp + 0x94]
mov edx, dword [esp + 0x8c]
push ecx
push edx
call dword [0x4782a0]
mov eax, dword [esp + 0x74]
jmp 0x445833
xor eax, eax
mov ecx, dword [esp + 0xee4]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebp
pop ebx
mov ecx, dword [esp + 0xec8]
xor ecx, esp
call fcn.00407ed0
add esp, 0xedc
ret 0xc