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

Disassembly:
push ebp
push edi
push esi
push ebx
sub esp, 0x5c
mov ebp, ecx
mov ecx, dword [esp + 0x7c]
mov eax, dword [esp + 0x94]
mov ebx, dword [eax + 0x14]
mov dword [ebp + 0x130], ebx
add dword [ebp + 0x168], 1
mov dword [ebp + 0x1a0], 0
cmp ebx, 1
je 0x44a032
cmp ebx, 3
je 0x449d25
mov esi, dword [ebp + 0x13c]
cmp ebx, 2
je 0x449d8d
mov edi, dword [ebp + 0x19c]
mov edx, dword [esp + 0xa0]
test edx, edx
je 0x449ad5
add dword [ebp + 0x164], 1
mov eax, dword [esp + 0xa0]
mov dword [ebp + 0x174], eax
mov edx, dword [esp + 0x70]
mov dword [ebp + 0x290], edx
mov eax, dword [esp + 0x9c]
mov dword [ebp + 0x298], eax
mov edx, dword [esp + 0x98]
mov dword [ebp + 0x294], edx
mov dword [ebp + 0x16c], ecx
mov eax, ecx
shl eax, 5
sub eax, ecx
mov edx, eax
shl edx, 7
add eax, edx
add eax, ecx
cmp eax, dword [esp + 0x88]
cmovg eax, dword [esp + 0x88]
mov edx, eax
mov dword [ebp + 0x180], eax
xor ecx, ecx
mov eax, dword [esp + 0x80]
test eax, eax
cmovns ecx, dword [esp + 0x80]
mov dword [ebp + 0x188], ecx
mov eax, dword [esp + 0x84]
mov dword [ebp + 0x198], eax
mov eax, dword [esp + 0x8c]
mov dword [ebp + 0x18c], eax
mov eax, dword [ebp + 0x190]
test esi, esi
je 0x449eba
imul eax, dword [esp + 0x8c]
sar eax, 0xa
add eax, dword [esp + 0x84]
cmp eax, edx
cmovg eax, edx
cmp edi, 0xffffff38
jge 0x449bab
mov edx, dword [esp + 0x84]
add edx, edx
add edx, dword [esp + 0x84]
sar edx, 2
cmp ecx, edx
cmovl ecx, edx
cmp eax, ecx
cmovl eax, ecx
mov dword [ebp + 0x184], eax
sub eax, 0x64
cmp eax, ecx
cmovg eax, ecx
mov dword [ebp + 0x188], eax
mov ecx, dword [0x4bf128]
cmp ecx, edi
cmovg ecx, edi
mov dword [0x4bf128], ecx
mov edi, dword [esp + 0x9c]
mov esi, dword [esp + 0xa0]
test esi, esi
mov dword [esp + 4], edi
mov eax, dword [esp + 0x74]
mov dword [esp], eax
mov ecx, ebp
je 0x449ef5
call method.CBitAllo3.startup_ms2_SIG_MASK_____36___unsigned_char_____576__
sub esp, 8
mov ebx, dword [ebp + 0x1a8]
test ebx, ebx
jle 0x449f0b
mov ecx, ebp
mov edx, dword [ebp + 0x174]
test edx, edx
je 0x44a06f
call method.CBitAllo3.allocate_ms__
mov ecx, dword [ebp + 0x13c]
test ecx, ecx
jne 0x449c43
cmp dword [ebp + 0x130], 2
je 0x449c43
cmp dword [ebp + 0x168], 0xa
jg 0x44a09c
mov esi, dword [esp + 0x90]
mov dword [esp], esi
mov ecx, ebp
call method.CBitAllo3.output_sf_SCALEFACT_
sub esp, 4
mov eax, dword [ebp + 0x174]
test eax, eax
je 0x449c6f
sub dword [ebp + 0xc94], 2
sub dword [ebp + 0xc98], 2
mov ebx, dword [ebp + 0x16c]
test ebx, ebx
jle 0x449d00
mov edi, dword [esp + 0x94]
xor esi, esi
mov ecx, dword [ebp + esi*4 + 0xc94]
add ecx, 0x8e
mov edx, 0xff
cmp ecx, edx
cmovg ecx, edx
mov dword [edi + 8], ecx
xor eax, eax
mov ebx, dword [ebp + 0x130]
test ebx, ebx
setne al
mov dword [edi + 0x10], eax
mov ecx, dword [ebp + 0x130]
mov dword [edi + 0x14], ecx
mov dword [edi + 0x18], 0
mov edx, dword [ebp + esi*4 + 0x314c]
mov dword [edi + 0x3c], edx
mov eax, dword [ebp + esi*4 + 0x3154]
mov dword [edi + 0x40], eax
mov ebx, dword [ebp + esi*4 + 0x1d4]
mov dword [edi + 0x4c], ebx
mov dword [edi + 0x50], ebx
mov dword [esp + 4], esi
mov dword [esp], edi
mov ecx, ebp
call method.CBitAllo.output_subdivide2_GR__int_
sub esp, 8
add esi, 1
add edi, 0x6c
cmp dword [ebp + 0x16c], esi
jg 0x449c86
mov ebp, dword [ebp + 0x170]
test ebp, ebp
je 0x449d1b
mov edi, dword [esp + 0x94]
mov dword [edi + 0xbc], 1
add esp, 0x5c
pop ebx
pop esi
pop edi
pop ebp
ret 0x34
mov edx, dword [ebp + 0x1a4]
mov esi, dword [ebp + 0x19c]
add esi, edx
sar esi, 1
lea ebx, [edx + 0x1f3]
cmp esi, ebx
jg 0x44a0b8
mov dword [ebp + 0x19c], esi
lea edi, [ecx + ecx]
add edi, edi
add edi, edi
add edi, ecx
mov dword [esp + 0x7c], ecx
shl edi, 8
mov dword [esp + 8], edi
mov dword [esp + 4], 0
mov ecx, dword [esp + 0x98]
mov dword [esp], ecx
call sym._memset
mov ebx, dword [ebp + 0x130]
mov ecx, dword [esp + 0x7c]
mov esi, dword [ebp + 0x13c]
cmp ebx, 2
jne 0x449abd
mov edi, dword [ebp + 0x1a4]
lea eax, [edi + 0x190]
test esi, esi
jne 0x449dda
mov esi, dword [ebp + 0x19c]
mov edx, esi
sub edx, edi
mov eax, 0
cmovns eax, edx
sar eax, 1
sub esi, eax
mov ebx, 0x190
cmp edx, ebx
cmovl edx, ebx
sub edx, 0x190
sar edx, 2
mov eax, esi
sub eax, edx
lea esi, [edi + 0x18f]
cmp esi, eax
jl 0x449dda
lea eax, [edi + 0x190]
lea edi, [ebp + 0x31cc]
mov dword [esp + 0x34], eax
mov edx, dword [esp + 0xa0]
mov dword [esp + 0x30], edx
mov ebx, dword [esp + 0x9c]
mov dword [esp + 0x2c], ebx
mov esi, dword [esp + 0x98]
mov dword [esp + 0x28], esi
mov eax, dword [esp + 0x94]
mov dword [esp + 0x24], eax
mov edx, dword [esp + 0x90]
mov dword [esp + 0x20], edx
mov ebx, dword [esp + 0x8c]
mov dword [esp + 0x1c], ebx
mov esi, dword [esp + 0x88]
mov dword [esp + 0x18], esi
mov eax, dword [esp + 0x84]
mov dword [esp + 0x14], eax
mov edx, dword [esp + 0x80]
mov dword [esp + 0x10], edx
mov dword [esp + 0xc], ecx
mov ecx, dword [esp + 0x78]
mov dword [esp + 8], ecx
mov ebx, dword [esp + 0x74]
mov dword [esp + 4], ebx
mov esi, dword [esp + 0x70]
mov dword [esp], esi
mov ecx, edi
call method.CBitAlloShort.BitAllo_float_____3__192___SIG_MASK_____3__12___int__int__int__int__int__int__SCALEFACT__GR__int_____576___unsigned_char_____576___int__int_
sub esp, 0x38
mov edi, dword [ebp + 0x13c]
test edi, edi
jne 0x449d1b
mov edx, dword [ebp + 0x16c]
mov ecx, dword [ebp + 4]
mov ebx, dword [ebp + ecx*4 + 0x64]
cmp dword [ebp + 0x130], 2
je 0x449d1b
cmp dword [ebp + 0x168], 0xa
jle 0x449d1b
mov dword [esp + 4], eax
imul edx, ebx
mov dword [esp], edx
mov ecx, ebp
call method.CBitAllo3.mnr_feedback_int__int__int___clone_.part.0_
sub esp, 8
jmp 0x449d1b
mov dword [esp + 0x4c], 0
test ebx, ebx
je 0x44a079
mov eax, dword [esp + 0x4c]
mov dword [ebp + 0x190], eax
mov eax, dword [ebp + 0x1a4]
add eax, 0x60e
sub eax, edi
mov ebx, 0xc8
cmp eax, ebx
cmovl eax, ebx
cmp eax, esi
cmovg eax, esi
jmp 0x449b7f
call method.CBitAllo3.startup_SIG_MASK_____36___unsigned_char_____576__
sub esp, 8
mov ebx, dword [ebp + 0x1a8]
test ebx, ebx
jg 0x449c0e
mov esi, dword [ebp + 0x16c]
test esi, esi
jle 0x449d1b
mov ecx, dword [esp + 0x94]
lea edx, [ecx + 4]
mov esi, dword [esp + 0x90]
mov dword [esp + 0x4c], 0
xor eax, eax
jmp 0x449f74
test edi, 2
jne 0x44a028
mov ecx, ebx
shr ecx, 2
rep stosd dword es:[edi], eax
test bl, 2
je 0x449f50
stosw word es:[edi], ax
and ebx, 1
je 0x449f56
stosb byte es:[edi], al
add dword [esp + 0x4c], 1
mov edi, dword [esp + 0x4c]
add edx, 0x6c
add esi, 0xf8
cmp dword [ebp + 0x16c], edi
jle 0x449d1b
mov dword [edx + 4], 0
xor ecx, ecx
mov ebx, dword [ebp + 0x130]
test ebx, ebx
setne cl
mov dword [edx + 0xc], ecx
mov edi, dword [ebp + 0x130]
mov dword [edx + 0x10], edi
mov dword [edx + 0x14], 0
mov dword [edx + 0x38], 0
mov dword [edx + 0x3c], 0
mov dword [edx + 0x18], 0
mov dword [edx + 0x1c], 0
mov dword [edx + 0x20], 0
mov dword [edx], 0
mov dword [edx + 0x30], 0
mov dword [edx + 0x34], 0
mov dword [edx + 0x40], 0
mov dword [edx + 0x44], 0
mov dword [edx + 0x48], 0
mov dword [edx + 0x4c], 0
mov dword [edx + 0x50], 0
mov dword [edx + 0x54], 0
mov dword [edx + 0x58], 0
mov edi, esi
mov ebx, 0x54
test esi, 1
je 0x449f36
stosb byte es:[edi], al
mov ebx, 0x53
test edi, 2
je 0x449f42
stosw word es:[edi], ax
sub ebx, 2
jmp 0x449f42
mov edi, dword [ebp + 0x19c]
mov eax, dword [ebp + 0x1a4]
cmp edi, eax
jle 0x44a05d
lea edi, [edi + eax]
sar edi, 1
lea esi, [eax + 0x1f3]
cmp edi, esi
jle 0x44a057
lea edi, [eax + 0x1f4]
mov dword [ebp + 0x19c], edi
add dword [0x4bf124], 1
mov esi, dword [ebp + 0x13c]
jmp 0x449ac3
call method.CBitAllo3.allocate__
jmp 0x449c23
mov ebx, 0x234
cmp eax, ebx
cmovg eax, ebx
add eax, 0x32
mov dword [esp + 0x4c], eax
imul eax, dword [esp + 0x8c]
sar eax, 0xa
mov esi, eax
jmp 0x449eca
mov dword [esp + 4], eax
mov edi, dword [ebp + 0x1a8]
mov dword [esp], edi
mov ecx, ebp
call method.CBitAllo3.mnr_feedback_int__int__int___clone_.part.0_
sub esp, 8
jmp 0x449c43
lea esi, [edx + 0x1f4]
jmp 0x449d43