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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
mov eax, 0x8074
call fcn.004b2840
push ebx
push esi
push edi
push 0x30
lea eax, [esp + 0x28]
push 0
push eax
call fcn.004b0a70
mov ecx, dword [ebp + 0x10]
mov eax, dword [ebp + 0xc]
add ecx, 0xfffffed4
add esp, 0xc
test al, 1
mov dword [esp + 0x1c], ecx
mov dword [esp + 0x18], eax
mov byte [esp + 0x13], 0
je 0x44727d
add eax, 0xffffffff
test al, 2
mov dword [esp + 0x18], eax
mov byte [esp + 0x13], 1
je 0x447278
sub dword [esp + 0x1c], 0x20
jmp 0x44727d
sub dword [esp + 0x1c], 5
mov eax, 0x2000
cmp dword [esp + 0x18], eax
jle 0x44728c
mov dword [esp + 0x18], eax
mov eax, 0x30c30c31
imul dword [esp + 0x18]
sar edx, 3
mov ebx, dword [ebp + 8]
mov eax, edx
shr eax, 0x1f
lea eax, [edx + eax + 1]
shl eax, 0xb
mov ecx, eax
shl ecx, 0x10
mov edx, eax
and edx, 0xff00
add ecx, edx
mov dword [esp + 0x14], eax
xor edx, edx
mov dh, byte [esp + 0x16]
shl ecx, 8
mov dword [esp + 0x2e], eax
shr eax, 0x18
mov byte [esp + 0x24], 0x22
mov dword [esp + 0x26], 0x14
mov dword [esp + 0x2a], 0x14000000
add ecx, edx
add ecx, eax
mov dword [esp + 0x32], ecx
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 eax, [esp + 0x58]
push eax
mov dword [esp + 0x7c], 0x44
mov dword [esp + 0x78], 0x29
movsw word es:[edi], word [esi]
call dword [sym.imp.KERNEL32.dll_GetLocalTime]
cmp byte [esp + 0x13], 0
mov byte [esp + 0x3c], 4
je 0x447600
movzx ecx, byte [esp + 0x5e]
movzx edx, byte [esp + 0x5a]
mov al, byte [esp + 0x58]
mov byte [esp + 0x38], cl
movzx ecx, byte [esp + 0x62]
sub al, 0x6c
mov byte [esp + 0x36], al
mov byte [esp + 0x13], al
movzx eax, byte [esp + 0x60]
mov byte [esp + 0x37], dl
movzx edx, byte [esp + 0x64]
mov byte [esp + 0x3a], cl
mov ecx, dword [0x4dfc0c]
mov byte [esp + 0x39], al
mov eax, dword [str.TESTDATA]
mov dword [esp + 0x49], ecx
mov ecx, dword [esp + 0x18]
mov byte [esp + 0x3b], dl
movzx edx, byte [0x4dfc10]
mov dword [esp + 0x45], eax
add ecx, 0xffffffd8
mov byte [esp + 0x4d], dl
mov eax, 0x30c30c31
imul ecx
sar edx, 3
mov eax, edx
shr eax, 0x1f
lea eax, [edx + eax + 1]
mov dword [esp + 0x20], eax
add eax, 0x15
mov ecx, eax
shl ecx, 0x10
mov edx, eax
and edx, 0xff00
add ecx, edx
mov dword [esp + 0x14], eax
xor edx, edx
mov dh, byte [esp + 0x16]
shl ecx, 8
mov dword [esp + 0x26], eax
shr eax, 0x18
push 0x30
push 0
mov byte [esp + 0x2c], 0x2a
add ecx, edx
add ecx, eax
mov dword [esp + 0x32], ecx
lea eax, [esp + 0x2c]
mov byte [esp + 0x45], 2
mov byte [esp + 0x4c], 8
mov dword [esp + 0x36], 0x800
mov dword [esp + 0x3a], 0x80000
lea edi, [ebx + 0x44]
mov ecx, 0xc
lea esi, [esp + 0x2c]
mov byte [ebx + 0x43], 1
push eax
mov dword [esp + 0x84], 0x6e
mov dword [esp + 0x80], 0x28
rep movsd dword es:[edi], dword [esi]
call fcn.004b0a70
movzx eax, byte [esp + 0x1f]
movzx ecx, byte [esp + 0x6a]
movzx edx, byte [esp + 0x66]
mov byte [esp + 0x42], al
movzx eax, byte [esp + 0x70]
mov byte [esp + 0x44], cl
movzx ecx, byte [esp + 0x6c]
mov byte [esp + 0x47], al
mov eax, dword [esp + 0x2c]
mov byte [esp + 0x43], dl
movzx edx, byte [esp + 0x6e]
add esp, 0xc
add eax, 0x15
mov byte [esp + 0x39], cl
mov byte [esp + 0x3a], dl
mov byte [esp + 0x3c], 4
mov byte [esp + 0x24], 0x22
mov dword [esp + 0x26], eax
mov dword [esp + 0x14], eax
mov ecx, eax
shl ecx, 0x10
mov edx, eax
and edx, 0xff00
add ecx, edx
shl ecx, 8
xor edx, edx
mov dh, byte [esp + 0x16]
shr eax, 0x18
mov dword [esp + 0x2e], 0x800
mov dword [esp + 0x32], 0x80000
mov word [esp + 0x40], 1
mov byte [esp + 0x3d], 2
mov byte [esp + 0x44], 1
add ecx, edx
add ecx, eax
mov eax, dword [esp + 0x20]
mov dword [esp + 0x2a], ecx
shl eax, 0xb
mov edx, 0x100
mov word [esp + 0x42], dx
lea edi, [eax + 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], dx
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
mov word [esp + 0x40], 1
lea edi, [eax + ebx + 0x822]
mov ecx, 8
lea esi, [esp + 0x24]
rep movsd dword es:[edi], dword [esi]
movsw word es:[edi], word [esi]
mov esi, dword [ebp + 0x10]
mov dl, 0xe
add esi, 0xfffffffb
mov byte [esp + 0x44], dl
mov dword [esp + 0x14], esi
mov ecx, esi
shl ecx, 0x10
mov edi, esi
mov dword [esp + 0x54], edx
xor edx, edx
mov dh, byte [esp + 0x16]
and edi, 0xff00
add ecx, edi
shl ecx, 8
mov dword [esp + 0x26], esi
shr esi, 0x18
mov byte [eax + ebx + 0x843], 1
add ecx, edx
mov edx, dword [esp + 0x54]
add ecx, esi
mov dword [esp + 0x2a], ecx
mov ecx, dword [str.TESTDATA.DAT_1]
mov dword [esp + 0x45], ecx
mov ecx, dword [0x4dfbfc]
mov dword [esp + 0x49], ecx
mov ecx, dword [0x4dfc00]
mov dword [esp + 0x4d], ecx
mov cx, word [0x4dfc04]
mov word [esp + 0x51], cx
movzx ecx, byte [0x4dfc06]
mov byte [esp + 0x53], cl
lea edi, [eax + ebx + 0x844]
mov ecx, 0xc
lea esi, [esp + 0x24]
mov byte [esp + 0x24], 0x30
mov byte [esp + 0x3d], 0
mov dword [esp + 0x2e], 0x2140
mov dword [esp + 0x32], 0x40210000
rep movsd dword es:[edi], dword [esi]
mov byte [esp + 0x44], dl
jmp 0x44763e
movzx ecx, byte [esp + 0x58]
movzx edx, byte [esp + 0x5e]
movzx eax, byte [esp + 0x5a]
sub cl, 0x6c
mov byte [esp + 0x38], dl
movzx edx, byte [esp + 0x60]
mov byte [esp + 0x37], al
movzx eax, byte [esp + 0x62]
mov byte [esp + 0x36], cl
movzx ecx, byte [esp + 0x64]
mov byte [esp + 0x39], dl
mov byte [esp + 0x3a], al
mov byte [esp + 0x3b], cl
mov byte [esp + 0x44], 0xe
mov edx, dword [esp + 0x18]
xor esi, esi
cmp edx, esi
mov byte [esp + 0x3d], 0
mov byte [esp + 0x24], 0x30
jle 0x44765f
mov ecx, edx
xor eax, eax
lea edi, [esp + 0x80]
rep stosd dword es:[edi], eax
cmp edx, esi
mov dword [esp + 0x20], 0x12c
mov dword [esp + 0x70], esi
jle 0x44786d
lea eax, [edx - 1]
mov dword [esp + 0x7c], eax
mov dword [esp + 0x14], esi
mov dword [esp + 0x54], edx
call fcn.004b354f
cdq
idiv dword [esp + 0x18]
mov edi, edx
cmp dword [esp + edi*4 + 0x80], 1
mov dword [esp + 0x6c], edi
je 0x447682
mov ecx, dword [esp + 0x7c]
cmp dword [esp + 0x70], ecx
mov dword [esp + edi*4 + 0x80], 1
jge 0x4476e4
call fcn.004b354f
mov ecx, eax
mov eax, dword [esp + 0x14]
cdq
idiv dword [esp + 0x18]
mov esi, 0xa
sub esi, eax
mov eax, dword [esp + 0x1c]
cdq
idiv dword [esp + 0x54]
imul esi, eax
mov eax, ecx
cdq
idiv esi
mov eax, edx
add eax, 1
mov dword [esp + 0x68], eax
jmp 0x4476ee
mov edx, dword [esp + 0x1c]
mov dword [esp + 0x68], edx
mov eax, edx
mov esi, dword [esp + 0x20]
mov ecx, esi
and ecx, 0xff00
mov edx, esi
shl edx, 0x10
add ecx, edx
xor edx, edx
mov dh, byte [esp + 0x22]
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 0x4477e1
cmp eax, 6
je 0x4477e1
cmp eax, 2
push esi
jne 0x44779a
call fcn.004b354f
cdq
mov ecx, 0x1a
idiv ecx
add edx, 0x41
push edx
call fcn.004b354f
cdq
mov ecx, 0x1a
idiv ecx
add edx, 0x41
push edx
lea edx, [esp + 0x51]
push str._.1c_.1c_06X.BIN_1
push edx
call fcn.004b09b2
add esp, 0x14
jmp 0x447805
call fcn.004b354f
cdq
mov ecx, 0x1a
idiv ecx
add edx, 0x41
push edx
call fcn.004b354f
cdq
mov ecx, 0x1a
idiv ecx
add edx, 0x41
push edx
call fcn.004b354f
cdq
mov ecx, 0x1a
idiv ecx
add edx, 0x41
push edx
lea edx, [esp + 0x55]
push str._.1c_.1c_.1c_05X.BIN_1
push edx
call fcn.004b09b2
add esp, 0x18
jmp 0x447805
push esi
call fcn.004b354f
cdq
mov ecx, 0x1a
idiv ecx
add edx, 0x41
push edx
lea edx, [esp + 0x4d]
push str._.1c_07X.BIN_1
push edx
call fcn.004b09b2
add esp, 0x10
mov ecx, dword [esp + 0x74]
cmp edi, ecx
lea esi, [esp + 0x24]
jge 0x44781f
lea edi, [edi + edi*2]
shl edi, 4
add edi, dword [esp + 0x78]
add edi, ebx
jmp 0x44783b
mov eax, edi
sub eax, ecx
cdq
mov ecx, 0x2a
idiv ecx
add eax, 1
shl eax, 0xb
lea edi, [edx + edx*2]
shl edi, 4
add eax, ebx
add edi, eax
mov eax, dword [esp + 0x68]
add dword [esp + 0x20], eax
sub dword [esp + 0x1c], eax
mov eax, dword [esp + 0x70]
sub dword [esp + 0x54], 1
add dword [esp + 0x14], 0xa
add eax, 1
cmp eax, dword [esp + 0x18]
mov ecx, 0xc
rep movsd dword es:[edi], dword [esi]
mov dword [esp + 0x70], eax
jl 0x447682
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret