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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
mov eax, 0x8074
call fcn.004b17f0
push ebx
xor eax, eax
push esi
push edi
mov ecx, 0xc
lea edi, [esp + 0x24]
rep stosd dword es:[edi], eax
mov eax, dword [ebp + 0x10]
add eax, 0xfffffed4
mov dword [esp + 0x20], eax
mov eax, dword [ebp + 0xc]
test al, 1
mov dword [esp + 0x1c], eax
mov byte [esp + 0x13], 0
je 0x44eb0a
dec eax
mov dword [esp + 0x1c], eax
test al, 2
mov eax, dword [esp + 0x20]
mov byte [esp + 0x13], 1
je 0x44eb03
sub eax, 0x20
jmp 0x44eb06
sub eax, 5
mov dword [esp + 0x20], eax
mov ecx, dword [esp + 0x1c]
mov eax, 0x2000
cmp ecx, eax
jle 0x44eb1b
mov dword [esp + 0x1c], eax
mov eax, 0x30c30c31
imul dword [esp + 0x1c]
sar edx, 3
mov ebx, dword [ebp + 8]
mov ecx, edx
shr ecx, 0x1f
lea eax, [edx + ecx + 1]
shl eax, 0xb
mov edx, eax
shl edx, 0x10
mov ecx, eax
and ecx, 0xff00
add edx, ecx
xor ecx, ecx
mov dword [esp + 0x14], eax
mov ch, byte [esp + 0x16]
mov dword [esp + 0x2e], eax
shl edx, 8
shr eax, 0x18
mov byte [esp + 0x24], 0x22
mov dword [esp + 0x26], 0x14
mov dword [esp + 0x2a], 0x14000000
add edx, ecx
add edx, eax
mov dword [esp + 0x32], edx
mov word [esp + 0x40], 1
mov word [esp + 0x42], 0x100
mov byte [esp + 0x3d], 2
mov byte [esp + 0x44], 1
mov ecx, 8
lea esi, [esp + 0x24]
mov edi, ebx
rep movsd dword es:[edi], dword [esi]
movsw word es:[edi], word [esi]
mov byte [esp + 0x53], 1
lea edi, [ebx + 0x22]
mov ecx, 8
lea esi, [esp + 0x24]
rep movsd dword es:[edi], dword [esi]
lea edx, [esp + 0x58]
push edx
mov dword [esp + 0x7c], 0x44
mov dword [esp + 0x78], 0x29
movsw word es:[edi], word [esi]
call dword [0x506464]
mov al, byte [esp + 0x13]
test al, al
mov byte [esp + 0x3c], 4
je 0x44ee75
mov al, byte [esp + 0x5e]
mov cl, byte [esp + 0x5a]
mov dl, byte [esp + 0x60]
mov byte [esp + 0x38], al
mov al, byte [esp + 0x58]
mov byte [esp + 0x37], cl
mov cl, byte [esp + 0x64]
sub al, 0x6c
mov byte [esp + 0x3b], cl
mov cl, byte [0x50ce80]
mov byte [esp + 0x36], al
mov byte [esp + 0x13], al
mov al, byte [esp + 0x62]
mov byte [esp + 0x4d], cl
mov ecx, dword [esp + 0x1c]
mov byte [esp + 0x3a], al
mov eax, dword [0x50ce7c]
add ecx, 0xffffffd8
mov dword [esp + 0x49], eax
mov byte [esp + 0x39], dl
mov edx, dword [0x50ce78]
mov dword [esp + 0x45], edx
mov eax, 0x30c30c31
imul ecx
sar edx, 3
mov eax, edx
shr eax, 0x1f
lea edx, [edx + eax + 1]
lea eax, [edx + 0x15]
mov dword [esp + 0x14], eax
mov ecx, eax
shl ecx, 0x10
mov esi, eax
mov dword [esp + 0x18], edx
xor edx, edx
mov dh, byte [esp + 0x16]
and esi, 0xff00
add ecx, esi
shl ecx, 8
mov dword [esp + 0x26], eax
shr eax, 0x18
mov byte [esp + 0x24], 0x2a
add ecx, edx
mov edx, dword [esp + 0x18]
add ecx, eax
mov dword [esp + 0x2a], ecx
xor eax, eax
mov byte [esp + 0x3d], 2
mov byte [esp + 0x44], 8
mov dword [esp + 0x2e], 0x800
mov dword [esp + 0x32], 0x80000
lea edi, [ebx + 0x44]
mov ecx, 0xc
lea esi, [esp + 0x24]
mov byte [ebx + 0x43], 1
rep movsd dword es:[edi], dword [esi]
mov ecx, 0xc
lea edi, [esp + 0x24]
rep stosd dword es:[edi], eax
mov al, byte [esp + 0x5e]
mov cl, byte [esp + 0x5a]
mov byte [esp + 0x38], al
mov al, byte [esp + 0x13]
mov byte [esp + 0x37], cl
mov cl, byte [esp + 0x60]
mov byte [esp + 0x36], al
mov al, byte [esp + 0x62]
mov byte [esp + 0x39], cl
mov cl, byte [esp + 0x64]
mov byte [esp + 0x3a], al
lea eax, [edx + 0x15]
mov byte [esp + 0x3b], cl
mov ecx, eax
mov dword [esp + 0x78], 0x6e
mov dword [esp + 0x74], 0x28
mov byte [esp + 0x3c], 4
mov byte [esp + 0x24], 0x22
mov dword [esp + 0x26], eax
mov dword [esp + 0x14], eax
shl ecx, 0x10
mov esi, eax
and esi, 0xff00
add ecx, esi
shl ecx, 8
mov dword [esp + 0x18], ebx
xor ebx, ebx
mov bh, byte [esp + 0x16]
shr eax, 0x18
shl edx, 0xb
mov dword [esp + 0x2e], 0x800
mov dword [esp + 0x32], 0x80000
mov word [esp + 0x40], 1
mov byte [esp + 0x3d], 2
add ecx, ebx
mov ebx, dword [esp + 0x18]
add ecx, eax
mov dword [esp + 0x2a], ecx
mov byte [esp + 0x44], 1
mov eax, 0x100
mov word [esp + 0x42], ax
lea edi, [edx + ebx + 0x800]
mov ecx, 8
lea esi, [esp + 0x24]
rep movsd dword es:[edi], dword [esi]
movsw word es:[edi], word [esi]
mov word [esp + 0x42], ax
mov eax, dword [ebp + 0x10]
mov byte [esp + 0x24], 0x22
mov dword [esp + 0x26], 0x14
mov dword [esp + 0x2a], 0x14000000
mov dword [esp + 0x2e], 0x800
mov dword [esp + 0x32], 0x80000
mov byte [esp + 0x3d], 2
mov byte [esp + 0x44], 1
lea edi, [edx + ebx + 0x822]
mov word [esp + 0x40], 1
mov ecx, 8
lea esi, [esp + 0x24]
rep movsd dword es:[edi], dword [esi]
movsw word es:[edi], word [esi]
mov byte [edx + ebx + 0x843], 1
add eax, 0xfffffffb
mov dword [esp + 0x14], eax
mov dword [esp + 0x18], edx
xor edx, edx
mov dh, byte [esp + 0x16]
mov ecx, eax
shl ecx, 0x10
mov esi, eax
and esi, 0xff00
add ecx, esi
shl ecx, 8
mov dword [esp + 0x26], eax
add ecx, edx
mov edx, dword [esp + 0x18]
shr eax, 0x18
add ecx, eax
mov eax, dword [0x50ce68]
mov dword [esp + 0x2a], ecx
mov ecx, dword [0x50ce6c]
mov dword [esp + 0x45], eax
mov eax, dword [0x50ce70]
mov dword [esp + 0x49], ecx
mov cx, word [str.TESTDATA.DAT_1]
mov dword [esp + 0x4d], eax
mov al, byte [0x50ce76]
mov word [esp + 0x51], cx
lea edi, [edx + ebx + 0x844]
mov ecx, 0xc
lea esi, [esp + 0x24]
mov byte [esp + 0x24], 0x30
mov byte [esp + 0x3d], 0
mov byte [esp + 0x44], 0xe
mov dword [esp + 0x2e], 0x2140
mov dword [esp + 0x32], 0x40210000
mov byte [esp + 0x53], al
rep movsd dword es:[edi], dword [esi]
jmp 0x44eea7
mov al, byte [esp + 0x58]
mov cl, byte [esp + 0x5e]
mov dl, byte [esp + 0x5a]
sub al, 0x6c
mov byte [esp + 0x38], cl
mov cl, byte [esp + 0x60]
mov byte [esp + 0x37], dl
mov dl, byte [esp + 0x62]
mov byte [esp + 0x36], al
mov al, byte [esp + 0x64]
mov byte [esp + 0x39], cl
mov byte [esp + 0x3a], dl
mov byte [esp + 0x3b], al
mov edx, dword [esp + 0x1c]
xor esi, esi
cmp edx, esi
mov byte [esp + 0x24], 0x30
mov byte [esp + 0x3d], 0
mov byte [esp + 0x44], 0xe
jle 0x44eecd
mov ecx, edx
xor eax, eax
lea edi, [esp + 0x80]
rep stosd dword es:[edi], eax
cmp edx, esi
mov dword [esp + 0x54], 0x12c
mov dword [esp + 0x68], esi
jle 0x44f0ef
lea ecx, [edx - 1]
mov dword [esp + 0x7c], ecx
mov dword [esp + 0x14], esi
mov dword [esp + 0x18], edx
call fcn.004b1e5e
cdq
idiv dword [esp + 0x1c]
mov edi, edx
cmp dword [esp + edi*4 + 0x80], 1
mov dword [esp + 0x6c], edi
je 0x44eef0
mov edx, dword [esp + 0x7c]
cmp dword [esp + 0x68], edx
mov dword [esp + edi*4 + 0x80], 1
jge 0x44ef50
call fcn.004b1e5e
mov ecx, eax
mov eax, dword [esp + 0x14]
cdq
idiv dword [esp + 0x1c]
mov esi, 0xa
sub esi, eax
mov eax, dword [esp + 0x20]
cdq
idiv dword [esp + 0x18]
imul esi, eax
mov eax, ecx
cdq
idiv esi
mov eax, edx
inc eax
mov dword [esp + 0x70], eax
jmp 0x44ef5a
mov edx, dword [esp + 0x20]
mov dword [esp + 0x70], edx
mov eax, edx
mov esi, dword [esp + 0x54]
mov ecx, esi
and ecx, 0xff00
mov edx, esi
shl edx, 0x10
add ecx, edx
xor edx, edx
mov dh, byte [esp + 0x56]
shl ecx, 8
shl eax, 0xb
mov dword [esp + 0x6c], eax
mov dword [esp + 0x2e], eax
mov dword [esp + 0x26], esi
add ecx, edx
mov edx, esi
shr edx, 0x18
add ecx, edx
mov dword [esp + 0x2a], ecx
mov ecx, eax
shl ecx, 0x10
mov edx, eax
and edx, 0xff00
add ecx, edx
xor edx, edx
mov dh, byte [esp + 0x6e]
shl ecx, 8
shr eax, 0x18
add ecx, edx
add ecx, eax
mov eax, dword [ebp + 0x14]
cmp eax, 5
mov dword [esp + 0x32], ecx
je 0x44f04d
cmp eax, 6
je 0x44f04d
cmp eax, 2
push esi
jne 0x44f006
call fcn.004b1e5e
cdq
mov ecx, 0x1a
idiv ecx
add edx, 0x41
push edx
call fcn.004b1e5e
cdq
mov ecx, 0x1a
idiv ecx
add edx, 0x41
push edx
lea edx, [esp + 0x51]
push 0x50ce54
push edx
call fcn.004b00c6
add esp, 0x14
jmp 0x44f071
call fcn.004b1e5e
cdq
mov ecx, 0x1a
idiv ecx
add edx, 0x41
push edx
call fcn.004b1e5e
cdq
mov ecx, 0x1a
idiv ecx
add edx, 0x41
push edx
call fcn.004b1e5e
cdq
mov ecx, 0x1a
idiv ecx
add edx, 0x41
push edx
lea edx, [esp + 0x55]
push 0x50ce3c
push edx
call fcn.004b00c6
add esp, 0x18
jmp 0x44f071
push esi
call fcn.004b1e5e
cdq
mov ecx, 0x1a
idiv ecx
add edx, 0x41
push edx
lea edx, [esp + 0x4d]
push 0x50ce2c
push edx
call fcn.004b00c6
add esp, 0x10
mov ecx, dword [esp + 0x74]
cmp edi, ecx
lea esi, [esp + 0x24]
jge 0x44f08d
mov ecx, dword [esp + 0x78]
lea edi, [edi + edi*2]
shl edi, 4
add edi, ecx
add edi, ebx
jmp 0x44f0a7
mov eax, edi
sub eax, ecx
cdq
mov ecx, 0x2a
idiv ecx
inc eax
shl eax, 0xb
lea edi, [edx + edx*2]
shl edi, 4
add eax, ebx
add edi, eax
mov eax, dword [esp + 0x70]
mov edx, dword [esp + 0x54]
add edx, eax
mov ecx, 0xc
rep movsd dword es:[edi], dword [esi]
mov ecx, dword [esp + 0x20]
mov esi, dword [esp + 0x18]
sub ecx, eax
mov eax, dword [esp + 0x68]
mov dword [esp + 0x54], edx
mov edx, dword [esp + 0x14]
inc eax
mov dword [esp + 0x20], ecx
mov ecx, dword [esp + 0x1c]
dec esi
add edx, 0xa
cmp eax, ecx
mov dword [esp + 0x68], eax
mov dword [esp + 0x18], esi
mov dword [esp + 0x14], edx
jl 0x44eef0
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret