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

Disassembly:
push 0xffffffffffffffff
push 0x46f290
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x3c
push ebx
push ebp
push esi
push edi
mov ebp, ecx
call fcn.00468777
mov ecx, dword [eax + 4]
call fcn.00457f84
xor esi, esi
push 0x4b1a08
lea ecx, [esp + 0x14]
mov dword [esp + 0x58], esi
call fcn.0045854a
mov ebx, dword [esp + 0x5c]
lea ecx, [ebp + 0x93c]
mov byte [esp + 0x54], 1
mov dword [esp + 0x30], ebx
call fcn.0042f400
mov dword [esp + 0x34], eax
mov dword [esp + 0x14], esi
mov ecx, ebp
mov byte [esp + 0x54], 2
call fcn.0046c180
mov ecx, dword [eax]
lea edx, [esp + 0x14]
push edx
push 0x475c48
push eax
call dword [ecx]
cmp eax, esi
jl 0x412637
mov ecx, dword [ebp + 0x8e0]
mov edx, dword [esp + 0x14]
push esi
push edx
mov eax, dword [ecx]
push ebx
call dword [eax + 0x1c]
mov eax, dword [ebp + 0x8c8]
shl eax, 2
push eax
call fcn.00458a48
add esp, 4
cmp eax, esi
mov dword [esp + 0x1c], eax
jne 0x41211a
mov eax, dword [esp + 0x14]
mov byte [esp + 0x54], 1
cmp eax, esi
je 0x41264a
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
jmp 0x41264a
cmp dword [ebp + 0x8c8], esi
jle 0x412156
lea ebx, [ebp + 0x8cc]
mov edi, eax
lea edx, [esp + 0x20]
push esi
push edx
mov ecx, ebx
call fcn.00412690
mov eax, dword [eax]
lea ecx, [esp + 0x20]
mov dword [edi], eax
call fcn.004584d6
mov eax, dword [ebp + 0x8c8]
inc esi
add edi, 4
cmp esi, eax
jl 0x41212a
mov ebx, dword [esp + 0x5c]
lea eax, [esp + 0x2c]
lea ecx, [ebp + 0x8ec]
push eax
push ebx
call fcn.0041eaf0
test eax, eax
je 0x4121c1
mov eax, dword [eax + 0xc]
mov edi, 0xa
mov dword [esp + 0x18], eax
lea esi, [eax + 0x6c0]
mov eax, dword [esi - 0x50]
test eax, eax
je 0x412194
push eax
call fcn.00458a71
add esp, 4
mov dword [esi - 0x50], 0
mov eax, dword [esi]
test eax, eax
je 0x4121a9
push eax
call fcn.00458a71
add esp, 4
mov dword [esi], 0
add esi, 8
dec edi
jne 0x41217d
mov edi, dword [esp + 0x18]
mov ecx, 0x1c4
xor eax, eax
rep stosd dword es:[edi], eax
jmp 0x41225e
push 0x710
call fcn.00458a48
mov edx, eax
add esp, 4
test edx, edx
je 0x4121fd
lea edi, [edx + 0x670]
mov ecx, 0x14
xor eax, eax
mov esi, edx
rep stosd dword es:[edi], eax
lea edi, [edx + 0x6c0]
mov ecx, 0x14
rep stosd dword es:[edi], eax
mov ecx, 0x1c4
mov edi, edx
rep stosd dword es:[edi], eax
jmp 0x4121ff
xor esi, esi
test esi, esi
mov dword [esp + 0x18], esi
jne 0x412247
mov ecx, dword [esp + 0x1c]
push ecx
call fcn.00458a71
add esp, 4
lea ecx, [esp + 0x10]
push 0x6c
call fcn.004599bb
mov edx, dword [esp + 0x10]
push esi
push esi
push edx
call fcn.0045f42f
mov eax, dword [esp + 0x14]
mov byte [esp + 0x54], 1
test eax, eax
je 0x41264a
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
jmp 0x41264a
mov edx, dword [esp + 0x60]
push ebx
lea ecx, [ebp + 0x8ec]
mov dword [esi], ebx
mov dword [esi + 4], edx
call fcn.0041ea10
mov dword [eax], esi
mov eax, ebx
xor edx, edx
shr eax, 4
div dword [ebp + 0x8f4]
mov eax, dword [ebp + 0x8f0]
test eax, eax
je 0x412294
mov eax, dword [eax + edx*4]
test eax, eax
je 0x412294
cmp dword [eax + 8], ebx
je 0x412289
mov eax, dword [eax]
test eax, eax
jne 0x41227c
jmp 0x412294
test eax, eax
je 0x412294
mov eax, dword [eax + 0xc]
mov dword [esp + 0x18], eax
lea esi, [ebp + 0x93c]
mov ecx, esi
call fcn.00430000
test eax, eax
jne 0x4122b4
mov ecx, esi
call fcn.00430160
test eax, eax
je 0x4123c3
lea ecx, [esp + 0x38]
call fcn.00453105
lea ecx, [esp + 0x38]
mov byte [esp + 0x54], 3
push ecx
mov ecx, esi
call fcn.004307f0
xor ebx, ebx
mov dword [esp + 0x24], eax
test eax, eax
jle 0x4123b1
mov edx, dword [esp + 0x18]
add edx, 0x6c0
mov dword [esp + 0x20], edx
mov eax, dword [esp + 0x3c]
lea ecx, [eax + ebx*4]
push ecx
lea ecx, [esp + 0x64]
call fcn.00458243
mov eax, dword [esp + 0x60]
mov byte [esp + 0x54], 4
push eax
mov edi, eax
call fcn.0045186b
xor edx, edx
div dword [ebp + 0x928]
mov eax, dword [ebp + 0x924]
test eax, eax
je 0x41238b
mov esi, dword [eax + edx*4]
test esi, esi
je 0x41238b
mov edx, dword [esi + 8]
push edi
push edx
call fcn.0043f64f
add esp, 8
test eax, eax
je 0x41233e
mov esi, dword [esi]
test esi, esi
jne 0x412325
jmp 0x41238b
test esi, esi
je 0x41238b
mov esi, dword [esi + 0xc]
test esi, esi
je 0x41238b
mov eax, dword [esi + 4]
test eax, eax
je 0x41242c
cmp dword [esi], 0
je 0x41242c
mov edi, dword [esp + 0x20]
mov dword [edi + 4], eax
mov eax, dword [esi + 4]
push eax
call fcn.00458a48
add esp, 4
mov dword [edi], eax
test eax, eax
je 0x4123d9
mov ecx, dword [esi + 4]
mov esi, dword [esi]
mov edx, ecx
mov edi, eax
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
lea ecx, [esp + 0x60]
mov byte [esp + 0x54], 3
call fcn.004584d6
mov ecx, dword [esp + 0x20]
mov eax, dword [esp + 0x24]
inc ebx
add ecx, 8
cmp ebx, eax
mov dword [esp + 0x20], ecx
jl 0x4122ea
lea ecx, [esp + 0x38]
mov byte [esp + 0x54], 2
call fcn.00453138
mov ebx, dword [esp + 0x5c]
mov ecx, ebp
call fcn.00466dfd
test eax, eax
jne 0x412496
xor esi, esi
jmp 0x412499
mov eax, dword [esp + 0x1c]
push eax
call fcn.00458a71
add esp, 4
push 0
push 0
push str.Memory_full_
call fcn.0045f42f
lea ecx, [esp + 0x60]
mov byte [esp + 0x54], 3
call fcn.004584d6
lea ecx, [esp + 0x38]
mov byte [esp + 0x54], 2
call fcn.00453138
mov eax, dword [esp + 0x14]
mov byte [esp + 0x54], 1
test eax, eax
je 0x41264a
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
jmp 0x41264a
mov edx, dword [esp + 0x1c]
push edx
call fcn.00458a71
mov eax, dword [esp + 0x64]
add esp, 4
lea ecx, [esp + 0x10]
push eax
push str._s_file_is_empty
push ecx
call fcn.00451685
mov edx, dword [esp + 0x1c]
add esp, 0xc
push 0
push 0
push edx
call fcn.0045f42f
lea ecx, [esp + 0x60]
mov byte [esp + 0x54], 3
call fcn.004584d6
lea ecx, [esp + 0x38]
mov byte [esp + 0x54], 2
call fcn.00453138
mov eax, dword [esp + 0x14]
mov byte [esp + 0x54], 1
test eax, eax
je 0x41264a
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
jmp 0x41264a
mov esi, dword [eax + 0x1c]
lea edx, [esp + 0x5c]
lea ecx, [ebp + 0x93c]
push edx
call fcn.00412020
mov ecx, dword [ebp + 0x8e0]
mov edi, dword [esp + 0x1c]
mov eax, dword [eax]
push str.UartManager.UartObj
mov edx, dword [ecx]
push esi
push 0
push ebx
lea esi, [esp + 0x40]
push 1
push esi
mov esi, dword [ebp + 0x8c8]
push esi
push edi
push eax
mov byte [esp + 0x78], 5
call dword [edx + 4]
lea ecx, [esp + 0x5c]
mov esi, eax
mov byte [esp + 0x54], 2
call fcn.004584d6
push edi
call fcn.00458a71
mov ecx, dword [ebp + 0x8e0]
add esp, 4
lea edx, [esp + 0x28]
mov dword [esp + 0x28], 0
mov eax, dword [ecx]
push edx
push ebx
call dword [eax + 0x10]
cmp esi, 0x80047001
ja 0x412539
je 0x412532
cmp esi, 0x80046001
je 0x41252b
cmp esi, 0x80046009
jne 0x41254d
push 0x67
jmp 0x4125ec
push 0x6f
jmp 0x4125ec
push 0x6e
jmp 0x4125ec
cmp esi, 0x80047002
je 0x4125ea
cmp esi, 0x80048005
je 0x4125ba
mov eax, dword [0x4b1d28]
test eax, eax
jne 0x41256d
xor eax, eax
mov ecx, ebp
test esi, esi
setge al
push eax
push ebx
call fcn.00466dfd
mov ecx, eax
call fcn.0040bcd0
mov edx, dword [ebp]
push 1
mov ecx, ebp
call dword [edx + 0xc8]
mov eax, dword [esp + 0x14]
mov byte [esp + 0x54], 1
test eax, eax
je 0x41258d
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
lea ecx, [esp + 0x10]
mov byte [esp + 0x54], 0
call fcn.004584d6
mov dword [esp + 0x54], 0xffffffff
call fcn.00468777
mov ecx, dword [eax + 4]
call fcn.00457f99
mov eax, 1
jmp 0x41266f
mov ecx, dword [esp + 0x18]
add ecx, 0x56
push ecx
lea ecx, [esp + 0x14]
call fcn.0045866d
mov edx, dword [esp + 0x10]
mov eax, dword [edx - 8]
test eax, eax
jne 0x4125f5
lea eax, [esp + 0x10]
push str.Init_BMFiles_failed_
push eax
call fcn.00451685
add esp, 8
jmp 0x4125f5
push 0x6d
lea ecx, [esp + 0x14]
call fcn.004599bb
mov eax, dword [esp + 0x10]
mov ecx, dword [eax - 8]
test ecx, ecx
je 0x41260a
push 0
push 0
push eax
call fcn.0045f42f
mov ecx, dword [ebp + 0x8e0]
push ebx
mov edx, dword [ecx]
call dword [edx + 0xc]
mov ecx, dword [ebp + 0x8e0]
push ebx
mov eax, dword [ecx]
call dword [eax + 0x20]
mov eax, dword [esp + 0x14]
mov byte [esp + 0x54], 1
test eax, eax
je 0x41264a
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
jmp 0x41264a
mov eax, dword [esp + 0x14]
mov byte [esp + 0x54], 1
cmp eax, esi
je 0x41264a
mov edx, dword [eax]
push eax
call dword [edx + 8]
lea ecx, [esp + 0x10]
mov byte [esp + 0x54], 0
call fcn.004584d6
mov dword [esp + 0x54], 0xffffffff
call fcn.00468777
mov ecx, dword [eax + 4]
call fcn.00457f99
xor eax, eax
mov ecx, dword [esp + 0x4c]
pop edi
pop esi
pop ebp
pop ebx
mov dword fs:[0], ecx
add esp, 0x48
ret 8