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

Disassembly:
sub esp, 0x438
mov eax, dword [0x4bacc0]
xor eax, esp
mov dword [esp + 0x434], eax
push ebx
push ebp
mov ebp, dword [esp + 0x448]
push esi
push edi
mov edi, dword [esp + 0x44c]
xor ebx, ebx
cmp ebp, dword [edi + 4]
mov dword [esp + 0x24], ebx
jne 0x450ce1
mov esi, dword [edi + 0x430]
mov eax, dword [edi + 0x10]
push eax
lea ecx, [esi + 0x10]
push ecx
call fcn.00448540
mov eax, 3
mov word [esi + 0x1c], ax
mov word [esi + 0x1e], ax
mov dword [esi + 0x28], ebx
mov dword [esi + 0x2c], ebx
mov byte [esi + 0x30], bl
mov eax, 1
mov dword [esi + 0x20], eax
mov dword [esi + 0x24], eax
mov edx, dword [str.OSTA_Compressed_Unicode]
mov dword [esi + 0x31], edx
mov eax, dword [0x4a1474]
mov dword [esi + 0x35], eax
mov ecx, dword [0x4a1478]
mov dword [esi + 0x39], ecx
mov edx, dword [0x4a147c]
mov dword [esi + 0x3d], edx
mov eax, dword [0x4a1480]
mov dword [esi + 0x41], eax
mov ecx, dword [0x4a1484]
lea eax, [edi + 0x20]
push eax
lea edx, [esi + 0x70]
push 0x80
push edx
mov dword [esi + 0x45], ecx
call fcn.00448460
mov byte [esi + 0xf0], bl
mov eax, dword [str.OSTA_Compressed_Unicode]
mov dword [esi + 0xf1], eax
mov ecx, dword [0x4a1474]
mov dword [esi + 0xf5], ecx
mov edx, dword [0x4a1478]
mov dword [esi + 0xf9], edx
mov eax, dword [0x4a147c]
mov dword [esi + 0xfd], eax
mov ecx, dword [0x4a1480]
lea eax, [edi + 0x20]
push eax
mov dword [esi + 0x101], ecx
mov edx, dword [0x4a1484]
lea eax, [esi + 0x130]
push 0x20
push eax
mov dword [esi + 0x105], edx
call fcn.00448460
push 0x49e5e0
lea ecx, [esi + 0x150]
push 0x20
push ecx
call fcn.00448460
push 0x49e5e0
lea edx, [esi + 0x170]
push 0x20
push edx
call fcn.00448460
mov dword [esi + 0x190], 0x800
mov eax, dword [edi + 0x488]
sub eax, dword [edi + 0x490]
mov word [esi + 0x198], bx
mov byte [esi + 0x1a0], bl
add eax, 2
mov dword [esi + 0x194], eax
mov ecx, dword [str.OSTA_UDF_Compliant]
mov dword [esi + 0x1a1], ecx
mov edx, dword [0x4a1440]
mov dword [esi + 0x1a5], edx
mov eax, dword [0x4a1444]
mov dword [esi + 0x1a9], eax
mov ecx, dword [0x4a1448]
mov dword [esi + 0x1ad], ecx
mov edx, dword [0x4a144c]
mov dword [esi + 0x1b1], edx
mov byte [esi + 0x1b8], 2
mov byte [esi + 0x1b9], 1
mov byte [esi + 0x1ba], 3
mov dword [esi + 0x1c0], ebx
mov dword [esi + 0x1c4], ebx
mov dword [esi + 0x1c8], ebx
mov dword [esi + 0x1cc], ebx
mov dword [esi + 0x1e0], ebx
mov dword [esi + 0x1e4], ebx
mov dword [esi + 0x1e8], ebx
mov dword [esi + 0x1ec], ebx
mov dword [esi + 0x1f0], ebx
mov dword [esi + 0x1f4], ebx
mov dword [esi + 0x1f8], ebx
mov dword [esi + 0x1fc], ebx
mov eax, dword [edi + 0x488]
sub eax, dword [edi + 0x490]
push eax
push 0x1f0
push esi
push 0x100
call fcn.00448620
add esp, 0x48
lea esi, [edi + 0x434]
push esi
push edi
call fcn.0044c680
add esp, 8
cmp eax, ebx
jne 0x45186d
test byte [edi], 1
mov eax, dword [esi]
mov dword [edi + 0x430], eax
je 0x450c7a
mov byte [eax - 6], 9
mov ecx, dword [edi + 0x430]
mov byte [ecx - 2], 9
mov eax, dword [edi + 0x430]
push 0x1f0
mov dword [esp + 0x38], eax
add eax, 0x10
push ebx
push eax
call fcn.00481440
mov edx, dword [edi + 0x488]
sub edx, dword [edi + 0x490]
mov eax, dword [esp + 0x40]
add edx, 1
push edx
push 0x1f0
push eax
push 8
call fcn.00448620
push esi
push edi
call fcn.0044c680
add esp, 0x24
cmp eax, ebx
jne 0x45186d
test byte [edi], 1
mov esi, dword [esi]
mov dword [edi + 0x430], esi
je 0x450ce1
mov byte [esi - 6], 9
mov ecx, dword [edi + 0x430]
mov byte [ecx - 2], 9
mov esi, dword [edi + 0x430]
cmp word [ebp + 0x3e], bx
mov dword [esi + 0x10], ebx
mov word [esi + 0x14], 4
mov byte [esi + 0x17], bl
mov byte [esi + 0x16], bl
mov byte [esi + 0x1a], bl
je 0x45130f
mov ecx, 1
mov word [esi + 0x18], cx
mov byte [esi + 0x1b], 4
mov dword [esi + 0x1c], ebx
mov word [esi + 0x20], bx
or eax, 0xffffffff
mov dword [esi + 0x24], eax
mov dword [esi + 0x28], eax
mov word [esi + 0x22], 0x230
mov dword [esi + 0x2c], 0x14a5
mov word [esi + 0x30], cx
xor eax, eax
cmp word [ebp + 0x3e], bx
jbe 0x450d5f
lea edx, [ebp + 0x40]
lea esp, [esp]
mov ecx, dword [edx]
cmp ecx, ebx
je 0x450d51
cmp word [ecx + 0x3e], bx
je 0x450d51
add word [esi + 0x30], 1
movzx ecx, word [ebp + 0x3e]
add eax, 1
add edx, 4
cmp eax, ecx
jb 0x450d40
mov byte [esi + 0x32], bl
mov byte [esi + 0x33], bl
mov dword [esi + 0x34], ebx
mov dword [esi + 0x3c], ebx
mov edx, dword [ebp + 0x34]
mov dword [esi + 0x38], edx
mov dword [esi + 0x44], ebx
mov eax, dword [ebp + 0x34]
push 0x800
push eax
push ebx
call fcn.0042eb60
mov dword [esi + 0x40], eax
mov ecx, dword [ebp + 0xc]
push ecx
lea edx, [esi + 0x48]
push edx
call fcn.00448540
mov eax, dword [ebp + 0xc]
push eax
lea ecx, [esi + 0x54]
push ecx
call fcn.00448540
mov edx, dword [ebp + 0xc]
push edx
lea eax, [esi + 0x60]
push eax
call fcn.00448540
mov dword [esi + 0x6c], 1
xor eax, eax
mov dword [esi + 0x70], eax
mov dword [esi + 0x74], eax
mov dword [esi + 0x78], eax
mov dword [esi + 0x7c], eax
mov byte [esi + 0x80], bl
mov ecx, dword [0x4a1468]
mov dword [esi + 0x81], ecx
mov dx, word [0x4a146c]
mov word [esi + 0x85], dx
mov al, byte [0x4a146e]
add esp, 0x24
mov byte [esi + 0x87], al
mov dword [esi + 0xa4], ebx
cmp ebp, dword [edi + 4]
jne 0x450dff
xor eax, eax
jmp 0x450e05
mov eax, dword [ebp + 4]
add eax, 0xf
mov dword [esi + 0xa0], eax
mov eax, 0x84
mov dword [esi + 0xa8], eax
mov dword [esi + 0xac], 8
mov dword [esi + 0xc0], 0x18
mov dword [esi + 0xc4], eax
mov ecx, dword [ebp + 0x1c]
push ecx
push edi
call fcn.00448270
push eax
push 8
lea edx, [esi + 0xb0]
push edx
push 0x106
call fcn.00448620
mov dword [esi + 0xc8], 0x800
mov byte [esi + 0xcc], 1
mov byte [esi + 0xcf], bl
mov byte [esi + 0xce], bl
mov byte [esi + 0xcd], bl
mov dword [esi + 0xd0], 0x34
mov dword [esi + 0xd4], 4
mov byte [esi + 0xd8], bl
mov ecx, dword [str.UDF_FreeEASpace]
mov dword [esi + 0xd9], ecx
mov edx, dword [0x4a152c]
lea eax, [esi + 0xc8]
mov dword [esi + 0xdd], edx
mov ecx, dword [0x4a1530]
mov dword [esi + 0xe1], ecx
mov edx, dword [0x4a1534]
mov dword [esi + 0xe5], edx
movzx ecx, byte [0x4a1538]
push eax
mov byte [esi + 0xe9], cl
mov byte [esi + 0xf0], 2
mov byte [esi + 0xf1], 1
call fcn.00448f40
mov word [esi + 0xf8], ax
mov word [esi + 0xfa], bx
mov dword [esi + 0xfc], 0x800
mov byte [esi + 0x100], 1
mov byte [esi + 0x103], bl
mov byte [esi + 0x102], bl
mov byte [esi + 0x101], bl
mov dword [esi + 0x104], 0x38
mov dword [esi + 0x108], 8
mov byte [esi + 0x10c], bl
mov edx, dword [str.UDF_DVD_CGMS_Info]
mov dword [esi + 0x10d], edx
mov ecx, dword [0x4a1518]
lea eax, [esi + 0xfc]
mov dword [esi + 0x111], ecx
mov edx, dword [0x4a151c]
mov dword [esi + 0x115], edx
mov ecx, dword [0x4a1520]
mov dword [esi + 0x119], ecx
mov dx, word [0x4a1524]
mov word [esi + 0x11d], dx
movzx ecx, byte [0x4a1526]
push eax
mov byte [esi + 0x11f], cl
mov byte [esi + 0x124], 2
mov byte [esi + 0x125], 1
call fcn.00448f40
mov word [esi + 0x12c], ax
mov byte [esi + 0x12e], bl
mov byte [esi + 0x12f], bl
mov dword [esi + 0x130], ebx
mov edx, dword [ebp + 0x34]
mov dword [esi + 0x134], edx
mov eax, dword [ebp + 0x1c]
add eax, 1
push eax
push edi
call fcn.00448270
mov dword [esi + 0x138], eax
mov ecx, dword [ebp + 0x1c]
push ecx
push edi
call fcn.00448270
push eax
push 0x12c
push esi
push 0x105
call fcn.00448620
add esp, 0x40
lea esi, [edi + 0x434]
push esi
push edi
call fcn.0044c680
add esp, 8
cmp eax, ebx
jne 0x45186d
test byte [edi], 1
mov esi, dword [esi]
mov dword [edi + 0x430], esi
je 0x451018
mov byte [esi - 6], 9
mov edx, dword [edi + 0x430]
mov byte [edx - 2], 9
mov eax, dword [ebp + 0x1c]
add eax, 1
push eax
push edi
call fcn.00448270
push 0x200
lea ecx, [esp + 0x50]
mov esi, eax
push ebx
push ecx
mov dword [esp + 0x24], esi
call fcn.00481440
add esp, 0x14
cmp ebp, dword [edi + 4]
mov word [esp + 0x54], 1
mov byte [esp + 0x56], 0xa
mov byte [esp + 0x57], bl
mov dword [esp + 0x58], 0x800
jne 0x451060
lea eax, [esi - 1]
jmp 0x451070
mov edx, dword [ebp]
mov eax, dword [edx + 0x1c]
push eax
push edi
call fcn.00448270
add esp, 8
push esi
push 0x18
lea ecx, [esp + 0x4c]
push ecx
push 0x101
mov dword [esp + 0x6c], eax
mov word [esp + 0x70], bx
mov dword [esp + 0x72], ebx
mov word [esp + 0x76], bx
mov word [esp + 0x78], bx
call fcn.00448620
mov eax, dword [edi + 0x430]
push 0x28
lea edx, [esp + 0x58]
push edx
push eax
call fcn.00481900
add dword [edi + 0x430], 0x28
add esp, 0x1c
cmp word [ebp + 0x3e], bx
mov dword [esp + 0x30], ebx
jbe 0x4512d3
lea ecx, [ebp + 0x40]
mov dword [esp + 0x14], ecx
jmp 0x4510d0
mov edx, dword [esp + 0x14]
cmp dword [edx], ebx
je 0x4512b7
cmp dword [esp + 0x24], 1
jne 0x45111f
lea esi, [edi + 0x434]
push esi
push edi
mov dword [esp + 0x2c], ebx
call fcn.0044c680
add esp, 8
cmp eax, ebx
jne 0x45186d
test byte [edi], 1
mov eax, dword [esi]
mov dword [edi + 0x430], eax
je 0x45111a
mov byte [eax - 6], 9
mov eax, dword [edi + 0x430]
mov byte [eax - 2], 9
add dword [esp + 0x10], 1
mov ecx, dword [esp + 0x14]
mov esi, dword [ecx]
push esi
call fcn.00449050
push eax
lea edx, [esp + 0x24c]
push 0x100
push edx
call fcn.00448460
push 0x200
lea eax, [esp + 0x58]
push ebx
push eax
call fcn.00481440
mov word [esp + 0x70], 1
mov ax, word [esi + 0x3e]
add esp, 0x1c
neg ax
sbb al, al
and eax, 2
mov byte [esp + 0x56], al
test word [esi + 8], 0x100
je 0x451176
or al, 1
mov byte [esp + 0x56], al
mov cl, byte [esp + 0x343]
mov byte [esp + 0x57], cl
mov dword [esp + 0x58], 0x800
mov edx, dword [esi + 0x1c]
push edx
push edi
call fcn.00448270
mov dword [esp + 0x64], eax
movzx eax, byte [esp + 0x34b]
push eax
lea ecx, [esp + 0x250]
push ecx
lea edx, [esp + 0x7a]
push edx
mov word [esp + 0x74], bx
mov dword [esp + 0x76], ebx
mov word [esp + 0x7a], bx
mov word [esp + 0x7c], bx
call fcn.00481900
movzx esi, byte [esp + 0x6b]
add esi, 0x26
mov eax, esi
add esp, 0x14
and eax, 0x80000003
jns 0x4511de
dec eax
or eax, 0xfffffffc
inc eax
je 0x4511e9
mov ecx, 4
sub ecx, eax
jmp 0x4511eb
xor ecx, ecx
mov eax, dword [esp + 0x10]
add esi, ecx
push eax
lea ecx, [esi - 0x10]
push ecx
lea edx, [esp + 0x4c]
push edx
push 0x101
call fcn.00448620
mov ecx, dword [edi + 0x430]
mov eax, dword [edi + 0x434]
sub eax, ecx
add eax, 0x800
add esp, 0x10
cmp eax, esi
mov dword [esp + 0x18], eax
jge 0x451294
push eax
lea eax, [esp + 0x48]
push eax
push ecx
call fcn.00481900
lea eax, [edi + 0x434]
push eax
push edi
call fcn.0044c680
add esp, 0x14
cmp eax, ebx
jne 0x45186d
test byte [edi], 1
mov eax, dword [edi + 0x434]
mov dword [edi + 0x430], eax
je 0x451266
mov byte [eax - 6], 9
mov ecx, dword [edi + 0x430]
mov byte [ecx - 2], 9
mov eax, dword [esp + 0x18]
mov ecx, dword [edi + 0x430]
mov edx, esi
sub edx, eax
push edx
lea eax, [esp + eax + 0x48]
push eax
push ecx
call fcn.00481900
sub esi, dword [esp + 0x24]
add esp, 0xc
add dword [edi + 0x430], esi
add dword [esp + 0x10], 1
jmp 0x4512b7
push esi
lea edx, [esp + 0x48]
push edx
push ecx
call fcn.00481900
add dword [edi + 0x430], esi
add esp, 0xc
cmp dword [esp + 0x18], esi
jne 0x4512b7
mov dword [esp + 0x24], 1
mov eax, dword [esp + 0x30]
movzx ecx, word [ebp + 0x3e]
add dword [esp + 0x14], 4
add eax, 1
cmp eax, ecx
mov dword [esp + 0x30], eax
jb 0x4510d0
lea esi, [edi + 0x434]
push esi
push edi
call fcn.0044c680
add esp, 8
cmp eax, ebx
jne 0x45186d
test byte [edi], 1
mov eax, dword [esi]
mov dword [edi + 0x430], eax
je 0x451834
mov byte [eax - 6], 9
mov edx, dword [edi + 0x430]
mov byte [edx - 2], 9
jmp 0x451834
xor eax, eax
mov word [esi + 0x18], 1
mov byte [esi + 0x1b], 5
mov dword [esi + 0x1c], eax
mov word [esi + 0x20], ax
or eax, 0xffffffff
mov dword [esi + 0x24], eax
mov dword [esi + 0x28], eax
mov word [esi + 0x22], 0x230
mov dword [esi + 0x2c], 0x1084
xor eax, eax
cmp ebp, dword [edi + 4]
mov byte [esi + 0x32], bl
sete al
mov byte [esi + 0x33], bl
mov dword [esi + 0x34], ebx
push 0x800
lea eax, [eax + eax + 1]
mov word [esi + 0x30], ax
mov ecx, dword [ebp + 0x14]
mov dword [esi + 0x3c], ecx
mov edx, dword [ebp + 0x18]
mov dword [esi + 0x38], edx
mov dword [esi + 0x44], ebx
mov eax, dword [ebp + 0x18]
mov ecx, dword [ebp + 0x14]
push eax
push ecx
call fcn.0042eb60
mov dword [esi + 0x40], eax
mov edx, dword [ebp + 0x10]
push edx
lea eax, [esi + 0x48]
push eax
call fcn.00448540
mov ecx, dword [ebp + 0x10]
push ecx
lea edx, [esi + 0x54]
push edx
call fcn.00448540
mov eax, dword [ebp + 0x10]
push eax
lea ecx, [esi + 0x60]
push ecx
call fcn.00448540
mov dword [esi + 0x6c], 1
xor eax, eax
mov dword [esi + 0x70], eax
mov dword [esi + 0x74], eax
mov dword [esi + 0x78], eax
mov dword [esi + 0x7c], eax
mov byte [esi + 0x80], bl
mov edx, dword [0x4a1468]
mov dword [esi + 0x81], edx
mov ax, word [0x4a146c]
mov word [esi + 0x85], ax
mov cl, byte [0x4a146e]
add esp, 0x24
mov byte [esi + 0x87], cl
mov dword [esi + 0xa4], ebx
cmp ebp, dword [edi + 4]
jne 0x4513ee
xor eax, eax
jmp 0x4513f4
mov eax, dword [ebp + 4]
add eax, 0xf
mov dword [esi + 0xa0], eax
mov eax, 0x84
mov dword [esi + 0xa8], eax
mov dword [esi + 0xac], ebx
mov dword [esi + 0xc0], 0x18
mov dword [esi + 0xc4], eax
mov edx, dword [ebp + 0x1c]
push edx
push edi
call fcn.00448270
push eax
push 8
lea eax, [esi + 0xb0]
push eax
push 0x106
call fcn.00448620
mov dword [esi + 0xc8], 0x800
mov byte [esi + 0xcc], 1
mov byte [esi + 0xcf], bl
mov byte [esi + 0xce], bl
mov byte [esi + 0xcd], bl
mov dword [esi + 0xd0], 0x34
mov dword [esi + 0xd4], 4
mov byte [esi + 0xd8], bl
mov ecx, dword [str.UDF_FreeEASpace]
mov dword [esi + 0xd9], ecx
mov edx, dword [0x4a152c]
lea eax, [esi + 0xc8]
mov dword [esi + 0xdd], edx
mov ecx, dword [0x4a1530]
mov dword [esi + 0xe1], ecx
mov edx, dword [0x4a1534]
mov dword [esi + 0xe5], edx
movzx ecx, byte [0x4a1538]
push eax
mov byte [esi + 0xe9], cl
mov byte [esi + 0xf0], 2
mov byte [esi + 0xf1], 1
call fcn.00448f40
mov word [esi + 0xf8], ax
mov word [esi + 0xfa], bx
mov dword [esi + 0xfc], 0x800
mov byte [esi + 0x100], 1
mov byte [esi + 0x103], bl
mov byte [esi + 0x102], bl
mov byte [esi + 0x101], bl
mov dword [esi + 0x104], 0x38
mov dword [esi + 0x108], 8
mov byte [esi + 0x10c], bl
mov edx, dword [str.UDF_DVD_CGMS_Info]
mov dword [esi + 0x10d], edx
mov ecx, dword [0x4a1518]
lea eax, [esi + 0xfc]
mov dword [esi + 0x111], ecx
mov edx, dword [0x4a151c]
mov dword [esi + 0x115], edx
mov ecx, dword [0x4a1520]
mov dword [esi + 0x119], ecx
mov dx, word [0x4a1524]
mov word [esi + 0x11d], dx
movzx ecx, byte [0x4a1526]
push eax
mov byte [esi + 0x11f], cl
mov byte [esi + 0x124], 2
mov byte [esi + 0x125], 1
call fcn.00448f40
mov word [esi + 0x12c], ax
mov byte [esi + 0x12e], bl
mov byte [esi + 0x12f], bl
mov dword [esi + 0x130], ebx
mov edx, dword [ebp + 0x18]
mov eax, dword [ebp + 0x20]
mov ecx, dword [ebp + 0x14]
sub eax, dword [edi + 0x490]
push 0x800
push edx
push ecx
mov dword [esp + 0x6c], ecx
mov dword [esp + 0x64], edx
mov dword [esp + 0x3c], eax
call fcn.0042eb60
mov ecx, eax
add ecx, 0x7fffe
mov eax, 0x2001
mul ecx
sub ecx, edx
shr ecx, 1
add ecx, edx
add esp, 0x2c
shr ecx, 0x12
mov dword [esp + 0x24], ecx
jne 0x4515ea
mov dword [esp + 0x24], 1
mov ecx, dword [esp + 0x24]
cmp ecx, ebx
mov dword [esp + 0x30], ebx
jbe 0x4517e3
lea edx, [esi + 0x138]
lea eax, [esi + 0x140]
mov dword [esp + 0x20], edx
mov dword [esp + 0x14], eax
lea edx, [esi + 0x13c]
lea eax, [esi + 0x134]
mov dword [esp + 0x18], 1
mov dword [esp + 0x1c], edx
mov dword [esp + 0x2c], eax
mov dword [esp + 0x34], ecx
mov dword [esp + 0x30], ecx
jmp 0x451638
mov eax, dword [esp + 0x2c]
mov ecx, dword [esp + 0x24]
add dword [esi + 0xac], 8
cmp dword [esp + 0x18], ecx
mov ecx, dword [esp + 0x38]
je 0x45164e
mov ecx, 0x3ffff800
mov edx, dword [esp + 0x20]
mov dword [eax], ecx
mov dword [esp + 0x3c], ecx
mov ecx, dword [esp + 0x10]
mov dword [edx], ecx
mov dx, word [ebp + 8]
and dx, 4
je 0x451703
mov ecx, dword [ebp + 0x24]
cmp ecx, ebx
jne 0x451684
cmp dword [ebp + 0x2c], ebx
je 0x4516ff
cmp ecx, ebx
je 0x45179c
cmp ecx, 0x3ffff800
jbe 0x45169a
add ecx, 0xc0000800
mov dword [ebp + 0x24], ecx
jmp 0x45179c
mov edx, dword [esp + 0x14]
mov dword [eax], ecx
mov ecx, dword [ebp + 0x28]
mov dword [edx], ecx
mov ecx, dword [esp + 0x24]
cmp dword [esp + 0x18], ecx
mov ecx, dword [esp + 0x1c]
jne 0x4516b8
mov edx, dword [ebp + 0x2c]
jmp 0x4516c0
mov edx, 0x3ffff800
sub edx, dword [ebp + 0x24]
mov dword [ecx], edx
mov ecx, dword [esp + 0x20]
mov edx, 8
add dword [esi + 0xac], edx
add dword [esp + 0x1c], edx
add dword [esp + 0x14], edx
add eax, edx
add ecx, edx
mov dword [ebp + 0x24], ebx
mov edx, dword [eax]
mov dword [esp + 0x2c], eax
mov eax, dword [ecx]
shr edx, 0xb
mov dword [esp + 0x20], ecx
lea ecx, [edx + eax - 0x7ffff]
mov dword [esp + 0x10], ecx
jmp 0x45179c
mov ecx, dword [esp + 0x10]
mov eax, dword [edi + 0x4a8]
cmp eax, ebx
je 0x45179c
sub eax, dword [edi + 0x490]
cmp ecx, eax
mov dword [esp + 0x28], eax
jae 0x451789
mov edx, dword [esp + 0x3c]
push 0x800
push edx
push ebx
call fcn.0042eb60
add eax, dword [esp + 0x1c]
add esp, 0xc
cmp eax, dword [esp + 0x28]
jbe 0x45179c
mov edx, dword [esp + 0x2c]
mov eax, dword [edx]
mov ecx, dword [esp + 0x1c]
add dword [esp + 0x2c], 8
mov dword [ecx], eax
mov eax, dword [esp + 0x28]
sub eax, dword [esp + 0x10]
add ecx, 8
shl eax, 0xb
sub dword [ecx - 8], eax
mov dword [edx], eax
mov edx, dword [edi + 0x4ac]
add edx, dword [esp + 0x28]
mov eax, dword [esp + 0x14]
mov dword [eax], edx
add dword [esi + 0xac], 8
add eax, 8
add dword [esp + 0x20], 8
mov dword [esp + 0x1c], ecx
mov dword [esp + 0x14], eax
jmp 0x45179c
cmp dx, bx
jne 0x45179c
mov eax, dword [edi + 0x4ac]
add eax, ecx
mov ecx, dword [esp + 0x20]
mov dword [ecx], eax
push 0x3ffff800
lea edx, [esp + 0x3c]
push edx
lea eax, [esp + 0x48]
push eax
call fcn.0042cbd0
add dword [esp + 0x1c], 0x7ffff
mov ecx, 8
add dword [esp + 0x38], ecx
add dword [esp + 0x28], ecx
add dword [esp + 0x20], ecx
add dword [esp + 0x2c], ecx
mov eax, 1
add dword [esp + 0x24], eax
add esp, 0xc
sub dword [esp + 0x34], eax
jne 0x451630
mov ecx, dword [ebp + 0x1c]
push ecx
push edi
call fcn.00448270
mov edx, dword [esp + 0x38]
push eax
lea eax, [edx*8 + 0x124]
push eax
push esi
push 0x105
call fcn.00448620
lea esi, [edi + 0x434]
push esi
push edi
call fcn.0044c680
add esp, 0x20
cmp eax, ebx
jne 0x45186d
test byte [edi], 1
mov esi, dword [esi]
mov dword [edi + 0x430], esi
je 0x451834
mov byte [esi - 6], 9
mov ecx, dword [edi + 0x430]
mov byte [ecx - 2], 9
xor esi, esi
cmp word [ebp + 0x3e], bx
jbe 0x45186b
lea edx, [ebp + 0x40]
mov dword [esp + 0x28], edx
mov eax, dword [esp + 0x28]
mov eax, dword [eax]
cmp eax, ebx
je 0x45185b
push eax
push edi
call fcn.00450a30
add esp, 8
cmp eax, ebx
jne 0x45186d
movzx ecx, word [ebp + 0x3e]
add dword [esp + 0x28], 4
add esi, 1
cmp esi, ecx
jb 0x451843
xor eax, eax
mov ecx, dword [esp + 0x444]
pop edi
pop esi
pop ebp
pop ebx
xor ecx, esp
call fcn.004810ab
add esp, 0x438
ret