Function at 0x404e50
Capabilities:
Hash data using crc32b

Disassembly:
push ebp
mov ebp, esp
push edi
push esi
push ebx
lea esi, [ebp - 0xf0]
sub esp, 0x16c
mov edi, dword [0x412558]
mov dword [ebp - 0x120], ecx
mov dword [ebp - 0x128], esi
lea esi, [ebp - 0xf8]
mov dword [ebp - 0xf8], edi
mov dword [ebp - 0xf4], edi
mov dword [ebp - 0xf0], edi
mov dword [ebp - 0xec], edi
mov edi, ecx
mov ecx, dword [ecx + 0xc]
mov dword [ebp - 0xfc], esi
lea esi, [ebp - 0xec]
mov dword [ebp - 0x124], esi
lea esi, [ebp - 0xf4]
mov eax, dword [ecx]
mov dword [ebp - 0x11c], esi
mov eax, dword [eax + 0x34]
mov dword [esp], 3
call eax
sub esp, 4
test al, al
jne 0x404fe5
mov eax, dword [edi + 0xc]
lea ecx, [ebp - 0xe8]
mov dword [ebp - 0x11c], esi
mov dword [esp], eax
lea eax, [ebp - 0xf0]
mov dword [ebp - 0x128], eax
lea eax, [ebp - 0xf8]
mov dword [ebp - 0xfc], eax
lea eax, [ebp - 0xec]
mov dword [ebp - 0x124], eax
call dword [0x412720]
mov eax, dword [ebp - 0xe8]
sub esp, 4
mov dword [ebp - 0xe4], eax
mov edx, dword [eax]
add edx, 1
cmp edx, 1
jbe 0x404f27
lock add dword [eax], 1
lea edi, [ebp - 0x5c]
mov dword [esp + 8], 0xf
mov dword [esp + 4], 0x40d476
mov dword [esp], edi
call dword [0x412604]
lea esi, [ebp - 0xe4]
mov dword [esp], edi
mov ecx, esi
call dword [0x412610]
sub esp, 4
mov ecx, edi
call fcn.0040af20
mov ecx, dword [ebp - 0x120]
mov dword [esp], esi
call fcn.004080e0
sub esp, 4
mov ecx, esi
call fcn.0040af20
lea ecx, [ebp - 0xe8]
call fcn.0040af20
lea eax, [ebp - 0xf0]
mov dword [ebp - 0x128], eax
lea eax, [ebp - 0xf8]
mov dword [ebp - 0xfc], eax
lea eax, [ebp - 0xec]
mov dword [ebp - 0x124], eax
lea eax, [ebp - 0xf4]
mov dword [ebp - 0x11c], eax
mov ecx, dword [ebp - 0x124]
call fcn.00409a70
mov ecx, dword [ebp - 0x128]
call fcn.00409a70
mov ecx, dword [ebp - 0x11c]
call fcn.00409a70
mov ecx, dword [ebp - 0xfc]
call fcn.0040af20
lea esp, [ebp - 0xc]
pop ebx
pop esi
pop edi
pop ebp
ret
lea eax, [ebp - 0xf0]
mov edi, dword [ebp - 0x120]
mov dword [ebp - 0x128], eax
lea eax, [ebp - 0xf8]
mov ecx, dword [edi + 0xc]
mov dword [esp + 4], 3
mov dword [ebp - 0xfc], eax
lea eax, [ebp - 0xec]
mov dword [esp], 0x1c200
mov dword [ebp - 0x124], eax
lea eax, [ebp - 0xf4]
mov dword [ebp - 0x11c], eax
call dword [0x4126e8]
lea eax, [ebp - 0xf0]
sub esp, 8
mov ecx, dword [edi + 0xc]
mov dword [esp], 8
mov dword [ebp - 0x128], eax
lea eax, [ebp - 0xf8]
mov dword [ebp - 0xfc], eax
lea eax, [ebp - 0xec]
mov dword [ebp - 0x124], eax
lea eax, [ebp - 0xf4]
mov dword [ebp - 0x11c], eax
call dword [0x4126ec]
lea eax, [ebp - 0xf0]
sub esp, 4
mov ecx, dword [edi + 0xc]
mov dword [esp], 2
mov dword [ebp - 0x128], eax
lea eax, [ebp - 0xf8]
mov dword [ebp - 0xfc], eax
lea eax, [ebp - 0xec]
mov dword [ebp - 0x124], eax
lea eax, [ebp - 0xf4]
mov dword [ebp - 0x11c], eax
call dword [0x41270c]
lea eax, [ebp - 0xf0]
sub esp, 4
mov ecx, dword [edi + 0xc]
mov dword [esp], 1
mov dword [ebp - 0x128], eax
lea eax, [ebp - 0xf8]
mov dword [ebp - 0xfc], eax
lea eax, [ebp - 0xec]
mov dword [ebp - 0x124], eax
lea eax, [ebp - 0xf4]
mov dword [ebp - 0x11c], eax
call dword [0x4126f4]
lea eax, [ebp - 0xf0]
sub esp, 4
mov ecx, dword [edi + 0xc]
mov dword [esp], 0
mov dword [ebp - 0x128], eax
lea eax, [ebp - 0xf8]
mov dword [ebp - 0xfc], eax
lea eax, [ebp - 0xec]
mov dword [ebp - 0x124], eax
lea eax, [ebp - 0xf4]
mov dword [ebp - 0x11c], eax
call dword [0x4126f8]
lea eax, [ebp - 0xf0]
sub esp, 4
mov ecx, dword [edi + 0xc]
mov dword [esp], 1
mov dword [ebp - 0x128], eax
lea eax, [ebp - 0xf8]
mov dword [ebp - 0xfc], eax
lea eax, [ebp - 0xec]
mov dword [ebp - 0x124], eax
lea eax, [ebp - 0xf4]
mov dword [ebp - 0x11c], eax
call dword [0x4126fc]
lea esi, [ebp - 0xf0]
mov eax, dword [0x41260c]
sub esp, 4
mov dword [esp + 4], 0x3a
mov dword [esp], str.BootLoaderMCU...
mov dword [ebp - 0x128], esi
lea esi, [ebp - 0xf8]
mov dword [ebp - 0x100], eax
mov dword [ebp - 0xfc], esi
lea esi, [ebp - 0xec]
mov dword [ebp - 0x124], esi
lea esi, [ebp - 0xf4]
mov dword [ebp - 0x11c], esi
call eax
mov dword [ebp - 0x2c], eax
lea eax, [ebp - 0x2c]
mov ecx, edi
mov dword [esp], eax
call fcn.004080e0
lea ecx, [ebp - 0x2c]
sub esp, 4
call fcn.0040af20
lea eax, [ebp - 0xf0]
xor edx, edx
mov byte [edi + 8], 1
mov word [edi + 0x20], dx
mov dword [ebp - 0x140], 0
mov dword [ebp - 0x128], eax
lea eax, [ebp - 0xf8]
mov dword [ebp - 0x13c], 0
mov dword [ebp - 0x11c], esi
mov dword [ebp - 0xfc], eax
mov edi, dword [ebp - 0x128]
lea eax, [ebp - 0xec]
mov dword [ebp - 0x124], eax
mov ecx, edi
call dword [0x412560]
lea eax, [ebp - 0xec]
mov dword [esp], 0x7f
mov ecx, edi
mov dword [ebp - 0x124], eax
call dword [0x412564]
mov eax, dword [ebp - 0xf0]
sub esp, 4
mov edx, dword [eax + 0xc]
movsx eax, byte [eax + edx]
mov dword [esp + 4], str.T:__02x__Looping..._
mov dword [esp + 8], eax
mov eax, dword [ebp - 0xfc]
mov dword [esp], eax
lea eax, [ebp - 0xec]
mov dword [ebp - 0x124], eax
call dword [0x412618]
mov eax, dword [ebp - 0xf8]
mov dword [ebp - 0x2c], eax
mov edx, dword [eax]
add edx, 1
cmp edx, 1
jbe 0x4052ab
lock add dword [eax], 1
lea eax, [ebp - 0x2c]
mov ecx, dword [ebp - 0x120]
mov dword [esp], eax
call fcn.00408160
lea ecx, [ebp - 0x2c]
sub esp, 4
call fcn.0040af20
mov edi, dword [0x41265c]
lea esi, [esi]
mov esi, dword [ebp - 0x120]
movzx eax, byte [esi + 8]
test al, al
je 0x40550c
mov ecx, dword [esi + 0xc]
lea ebx, [ebp - 0xec]
mov dword [ebp - 0x124], ebx
mov eax, dword [ecx]
mov dword [esp], 0x64
call dword [eax + 0x60]
mov eax, dword [ebp - 0xf0]
sub esp, 4
mov ecx, dword [esi + 0xc]
mov edx, dword [eax + 4]
mov dword [esp + 4], edx
sar edx, 0x1f
mov dword [esp + 8], edx
add eax, dword [eax + 0xc]
mov dword [esp], eax
lea eax, [ebp - 0xec]
mov dword [ebp - 0x124], eax
call edi
mov ecx, dword [esi + 0xc]
lea ebx, [ebp - 0xec]
sub esp, 0xc
mov dword [ebp - 0x124], ebx
mov eax, dword [ecx]
mov dword [esp], 0x64
call dword [eax + 0x5c]
mov eax, dword [esi + 0xc]
sub esp, 4
lea ecx, [ebp - 0xe0]
mov dword [ebp - 0x124], ebx
mov dword [esp], eax
call dword [0x412660]
mov eax, dword [ebp - 0xf4]
mov edx, dword [ebp - 0xe0]
sub esp, 4
mov dword [ebp - 0xf4], edx
mov dword [ebp - 0xe0], eax
mov edx, dword [eax]
test edx, edx
je 0x405e50
cmp edx, 0xffffffff
je 0x405398
lock sub dword [eax], 1
je 0x405e50
mov edx, dword [ebp - 0xf4]
mov eax, dword [edx + 4]
test eax, eax
jle 0x4052d0
xor ebx, ebx
add edx, dword [edx + 0xc]
mov esi, dword [0x412554]
jmp 0x4053f0
cmp edx, 0xffffffff
je 0x4053cf
lock sub dword [eax], 1
je 0x40790d
mov eax, dword [ebp - 0xf4]
mov edx, dword [eax + 0xc]
add edx, eax
cmp byte [edx + ebx], 0x79
je 0x405470
add ebx, 1
cmp ebx, dword [eax + 4]
jge 0x4052d0
movsx eax, byte [edx + ebx]
mov dword [esp + 4], str.R:__02x
mov dword [esp + 8], eax
mov eax, dword [ebp - 0xfc]
mov dword [esp], eax
lea eax, [ebp - 0xec]
mov dword [ebp - 0x124], eax
call dword [0x412618]
mov edx, dword [ebp - 0xf8]
mov dword [ebp - 0x2c], edx
mov eax, dword [edx]
add eax, 1
cmp eax, 1
jbe 0x405432
lock add dword [edx], 1
lea eax, [ebp - 0x2c]
mov ecx, dword [ebp - 0x120]
mov dword [esp], eax
call fcn.00408160
mov eax, dword [ebp - 0x2c]
sub esp, 4
mov edx, dword [eax]
test edx, edx
jne 0x4053c0
mov dword [esp + 8], 4
mov dword [esp + 4], 2
mov dword [esp], eax
call esi
jmp 0x4053cf
lea eax, [ebp - 0xec]
mov dword [esp + 4], 0x11
mov dword [esp], str.Receved_boot_ack_
mov dword [ebp - 0x124], eax
mov eax, dword [ebp - 0x100]
call eax
mov dword [ebp - 0x2c], eax
mov ecx, dword [ebp - 0x120]
lea eax, [ebp - 0x2c]
mov dword [esp], eax
call fcn.00408120
mov eax, dword [ebp - 0x2c]
sub esp, 4
mov edx, dword [eax]
test edx, edx
je 0x405faf
cmp edx, 0xffffffff
je 0x4054c6
lock sub dword [eax], 1
je 0x405fac
lea esi, [ebp - 0xdc]
lea eax, [ebp - 0xec]
mov dword [esp], esi
mov dword [ebp - 0x124], eax
call dword [0x412648]
mov ecx, esi
call dword [0x4126b4]
mov dword [ebp - 0x140], eax
mov dword [ebp - 0x13c], edx
mov ecx, esi
call dword [0x41264c]
mov eax, dword [ebp - 0xf4]
cmp dword [eax + 4], ebx
jle 0x4052d0
mov eax, dword [ebp - 0x120]
movzx eax, byte [eax + 8]
test al, al
je 0x4078f4
mov eax, dword [ebp - 0x120]
mov dword [esp], 1
lea esi, [eax + 0x18]
lea eax, [ebp - 0xec]
mov ecx, esi
mov dword [ebp - 0x124], eax
call dword [0x4125b4]
sub esp, 4
test al, al
je 0x4078a8
lea eax, [ebp - 0xec]
mov dword [esp], esi
lea ecx, [ebp - 0x30]
mov dword [ebp - 0x124], eax
call dword [0x412650]
sub esp, 4
lea ecx, [ebp - 0x30]
mov ebx, dword [0x4126b8]
call ebx
mov ecx, edx
mov dword [ebp - 0x114], 0
sar ecx, 0x1f
and ecx, 0x3f
mov dword [ebp - 0x118], ecx
add eax, dword [ebp - 0x118]
lea ecx, [ebp - 0x30]
adc edx, dword [ebp - 0x114]
shrd eax, edx, 6
mov dword [ebp - 0x138], eax
mov edi, eax
call ebx
mov dword [esp + 8], eax
mov eax, dword [ebp - 0xfc]
mov dword [esp + 0xc], edi
mov dword [esp + 4], str.FileSize:__d___PacketNum:__d
mov dword [esp], eax
call dword [0x412618]
mov eax, dword [ebp - 0xf8]
mov dword [ebp - 0x2c], eax
mov edx, dword [eax]
add edx, 1
cmp edx, 1
jbe 0x4055de
lock add dword [eax], 1
lea eax, [ebp - 0x2c]
mov ecx, dword [ebp - 0x120]
mov dword [esp], eax
call fcn.00408120
lea ecx, [ebp - 0x2c]
sub esp, 4
call fcn.0040af20
mov edi, dword [ebp - 0x138]
lea ecx, [ebp - 0x30]
shl edi, 6
call ebx
xor eax, edi
or edx, eax
jne 0x407852
mov dword [esp], esi
lea ecx, [ebp - 0xd0]
call dword [0x412660]
mov eax, dword [ebp - 0xec]
mov edx, dword [ebp - 0xd0]
sub esp, 4
mov dword [ebp - 0xec], edx
mov dword [ebp - 0xd0], eax
mov edx, dword [eax]
test edx, edx
je 0x406473
cmp edx, 0xffffffff
je 0x405655
lock sub dword [eax], 1
je 0x406473
mov ecx, esi
call dword [0x412570]
lea esi, [esi]
mov eax, dword [ebp - 0x120]
movzx eax, byte [eax + 8]
test al, al
je 0x405e0c
mov dword [esp], 8
mov ecx, dword [ebp - 0x128]
call dword [0x41256c]
mov eax, dword [ebp - 0xf0]
sub esp, 4
mov esi, dword [eax + 4]
test esi, esi
jle 0x405f88
mov edx, dword [eax]
cmp edx, 1
jbe 0x405ff1
movsx edx, byte [eax + 0xb]
mov ecx, dword [ebp - 0x128]
shr edx, 0x1f
mov dword [esp + 4], edx
mov eax, dword [eax + 4]
add eax, 1
mov dword [esp], eax
call dword [0x41255c]
mov edx, dword [ebp - 0xf0]
sub esp, 8
mov ecx, dword [edx + 0xc]
mov byte [edx + ecx], 0xfe
mov eax, dword [ebp - 0xf0]
cmp dword [eax + 4], 1
jle 0x405f64
mov edx, dword [eax]
cmp edx, 1
jbe 0x40602a
movsx edx, byte [eax + 0xb]
mov ecx, dword [ebp - 0x128]
shr edx, 0x1f
mov dword [esp + 4], edx
mov eax, dword [eax + 4]
add eax, 1
mov dword [esp], eax
call dword [0x41255c]
mov edx, dword [ebp - 0xf0]
sub esp, 8
mov ecx, dword [edx + 0xc]
mov byte [edx + ecx + 1], 8
mov eax, dword [ebp - 0xf0]
cmp dword [eax + 4], 2
jle 0x405f40
mov edx, dword [eax]
cmp edx, 1
jbe 0x406017
movsx edx, byte [eax + 0xb]
mov ecx, dword [ebp - 0x128]
shr edx, 0x1f
mov dword [esp + 4], edx
mov eax, dword [eax + 4]
add eax, 1
mov dword [esp], eax
call dword [0x41255c]
mov edx, dword [ebp - 0xf0]
sub esp, 8
mov ecx, dword [edx + 0xc]
mov byte [edx + ecx + 2], 3
mov eax, dword [ebp - 0xf0]
cmp dword [eax + 4], 3
jle 0x405f1c
mov edx, dword [eax]
cmp edx, 1
jbe 0x406004
movsx edx, byte [eax + 0xb]
mov ecx, dword [ebp - 0x128]
shr edx, 0x1f
mov dword [esp + 4], edx
mov eax, dword [eax + 4]
add eax, 1
mov dword [esp], eax
call dword [0x41255c]
mov edx, dword [ebp - 0xf0]
sub esp, 8
mov ecx, dword [edx + 0xc]
mov byte [edx + ecx + 3], 0
mov ecx, dword [ebp - 0xf0]
mov eax, dword [ecx]
cmp eax, 1
jbe 0x405fcd
movsx eax, byte [ecx + 0xb]
shr eax, 0x1f
mov dword [esp + 4], eax
mov eax, dword [ecx + 4]
mov ecx, dword [ebp - 0x128]
add eax, 1
mov dword [esp], eax
call dword [0x41255c]
mov ecx, dword [ebp - 0xf0]
sub esp, 8
mov eax, dword [ecx + 0xc]
mov edx, dword [ecx + eax]
mov ebx, 0xffffffff
mov eax, 0x20
jmp 0x40580d
add ebx, ebx
add edx, edx
sub eax, 1
je 0x405822
mov edi, edx
xor edi, ebx
jns 0x405804
add ebx, ebx
add edx, edx
xor ebx, 0x4c11db7
sub eax, 1
jne 0x40580d
mov eax, dword [ecx]
cmp eax, 1
jbe 0x405fde
movsx eax, byte [ecx + 0xb]
shr eax, 0x1f
mov dword [esp + 4], eax
mov eax, dword [ecx + 4]
mov ecx, dword [ebp - 0x128]
add eax, 1
mov dword [esp], eax
call dword [0x41255c]
mov eax, dword [ebp - 0xf0]
sub esp, 8
mov edx, dword [eax + 0xc]
mov edi, dword [ebp - 0x120]
mov dword [eax + edx + 4], ebx
mov ecx, dword [edi + 0xc]
mov eax, dword [ecx]
mov dword [esp], 0x64
call dword [eax + 0x60]
mov eax, dword [ebp - 0xf0]
sub esp, 4
mov ecx, dword [edi + 0xc]
mov edx, dword [eax + 4]
mov dword [esp + 4], edx
sar edx, 0x1f
mov dword [esp + 8], edx
add eax, dword [eax + 0xc]
mov dword [esp], eax
mov eax, dword [0x41265c]
mov dword [ebp - 0x134], eax
call eax
lea eax, [ebp - 0x58]
sub esp, 0xc
mov dword [esp + 8], 2
mov dword [esp + 4], 0x40d53b
mov dword [esp], eax
mov eax, dword [0x412604]
mov dword [ebp - 0x108], eax
call eax
mov eax, dword [ebp - 0xf8]
mov edx, dword [ebp - 0x58]
mov dword [ebp - 0x58], eax
mov dword [ebp - 0xf8], edx
mov edx, dword [eax]
test edx, edx
je 0x405efb
cmp edx, 0xffffffff
je 0x4058f0
lock sub dword [eax], 1
je 0x405efb
mov eax, dword [ebp - 0xf0]
mov ebx, dword [eax + 4]
test ebx, ebx
jle 0x405a6b
xor ebx, ebx
lea edi, [ebp - 0x54]
jmp 0x4059e5
cmp edx, 0xffffffff
je 0x40591f
lock sub dword [eax], 1
je 0x407848
mov eax, dword [ebp - 0xf0]
mov esi, dword [ebp - 0x100]
add eax, dword [eax + 0xc]
movzx eax, byte [eax + ebx]
mov dword [esp + 4], 2
mov dword [esp], 0x40d540
mov dword [ebp - 0x110], eax
call esi
mov dword [ebp - 0x2c], eax
mov eax, dword [ebp - 0x110]
lea esi, [ebp - 0xcc]
mov ecx, 0x30
mov dword [esp + 0x10], 0x10
mov dword [esp + 0xc], 2
mov word [esp + 0x14], cx
mov ecx, esi
mov dword [esp + 4], eax
sar eax, 0x1f
mov dword [esp + 8], eax
lea eax, [ebp - 0x2c]
mov dword [esp], eax
call dword [0x4126a8]
sub esp, 0x18
mov ecx, dword [ebp - 0xfc]
mov dword [esp], esi
call dword [0x412610]
mov eax, dword [ebp - 0xcc]
sub esp, 4
mov edx, dword [eax]
test edx, edx
je 0x405d00
cmp edx, 0xffffffff
je 0x4059bf
lock sub dword [eax], 1
je 0x405cfa
mov eax, dword [ebp - 0x2c]
mov edx, dword [eax]
test edx, edx
je 0x405a40
cmp edx, 0xffffffff
je 0x4059d3
lock sub dword [eax], 1
je 0x405a3d
mov eax, dword [ebp - 0xf0]
add ebx, 1
cmp ebx, dword [eax + 4]
jge 0x405a6b
mov dword [esp + 8], 1
mov dword [esp + 4], 0x40d53e
mov dword [esp], edi
mov eax, dword [ebp - 0x108]
call eax
mov dword [esp], edi
mov ecx, dword [ebp - 0xfc]
call dword [0x412610]
mov eax, dword [ebp - 0x54]
sub esp, 4
mov edx, dword [eax]
test edx, edx
jne 0x405910
mov dword [esp + 8], 4
mov dword [esp + 4], 2
mov dword [esp], eax
call dword [0x412554]
jmp 0x40591f
mov eax, dword [ebp - 0x2c]
mov dword [esp], eax
mov dword [esp + 8], 4
add ebx, 1
mov dword [esp + 4], 2
call dword [0x412554]
mov eax, dword [ebp - 0xf0]
cmp ebx, dword [eax + 4]
jl 0x4059e5
mov edx, dword [ebp - 0xf8]
mov dword [ebp - 0x2c], edx
mov eax, dword [edx]
add eax, 1
cmp eax, 1
jbe 0x405a82
lock add dword [edx], 1
lea eax, [ebp - 0x2c]
mov ecx, dword [ebp - 0x120]
mov dword [esp], eax
call fcn.00408160
mov eax, dword [ebp - 0x2c]
sub esp, 4
mov edx, dword [eax]
test edx, edx
je 0x405edd
cmp edx, 0xffffffff
je 0x405ab2
lock sub dword [eax], 1
je 0x405eda
mov eax, dword [ebp - 0x120]
lea ecx, [ebp - 0xc8]
mov dword [esp + 4], 0x10
mov dword [esp], eax
call fcn.00404d40
mov eax, dword [ebp - 0xf4]
mov edx, dword [ebp - 0xc8]
sub esp, 8
mov dword [ebp - 0xf4], edx
mov dword [ebp - 0xc8], eax
mov edx, dword [eax]
test edx, edx
je 0x405eb6
cmp edx, 0xffffffff
je 0x405b02
lock sub dword [eax], 1
je 0x405eb6
lea eax, [ebp - 0x50]
mov dword [esp + 8], 2
mov dword [esp + 4], 0x40d543
mov dword [esp], eax
mov eax, dword [ebp - 0x108]
call eax
mov eax, dword [ebp - 0xf8]
mov edx, dword [ebp - 0x50]
mov dword [ebp - 0x50], eax
mov dword [ebp - 0xf8], edx
mov edx, dword [eax]
test edx, edx
je 0x405e95
cmp edx, 0xffffffff
je 0x405b4b
lock sub dword [eax], 1
je 0x405e95
mov eax, dword [ebp - 0xf4]
mov edx, dword [eax + 4]
test edx, edx
jle 0x405d4c
xor ebx, ebx
lea edi, [ebp - 0x4c]
jmp 0x405c83
cmp edx, 0xffffffff
je 0x405b7f
lock sub dword [eax], 1
je 0x407826
mov ecx, dword [ebp - 0xf4]
mov eax, dword [ecx]
cmp eax, 1
jbe 0x405ce7
movsx eax, byte [ecx + 0xb]
shr eax, 0x1f
mov dword [esp + 4], eax
mov eax, dword [ecx + 4]
mov ecx, dword [ebp - 0x11c]
add eax, 1
mov dword [esp], eax
call dword [0x41255c]
mov eax, dword [ebp - 0xf4]
sub esp, 8
mov edx, dword [eax + 0xc]
add eax, ebx
mov esi, dword [ebp - 0x100]
movzx eax, byte [eax + edx]
mov dword [esp + 4], 2
mov dword [esp], 0x40d540
mov dword [ebp - 0x110], eax
call esi
mov dword [ebp - 0x2c], eax
mov eax, 0x30
lea esi, [ebp - 0xc4]
mov word [esp + 0x14], ax
mov eax, dword [ebp - 0x110]
mov dword [esp + 0x10], 0x10
mov dword [esp + 0xc], 2
mov ecx, esi
mov dword [esp + 4], eax
sar eax, 0x1f
mov dword [esp + 8], eax
lea eax, [ebp - 0x2c]
mov dword [esp], eax
call dword [0x4126a8]
sub esp, 0x18
mov ecx, dword [ebp - 0xfc]
mov dword [esp], esi
call dword [0x412610]
mov eax, dword [ebp - 0xc4]
sub esp, 4
mov edx, dword [eax]
test edx, edx
je 0x405e32
cmp edx, 0xffffffff
je 0x405c55
lock sub dword [eax], 1
je 0x405e2c
mov eax, dword [ebp - 0x2c]
mov edx, dword [eax]
test edx, edx
je 0x405d21
cmp edx, 0xffffffff
je 0x405c71
lock sub dword [eax], 1
je 0x405d1e
mov eax, dword [ebp - 0xf4]
add ebx, 1
cmp ebx, dword [eax + 4]
jge 0x405d4c
mov dword [esp + 8], 1
mov dword [esp + 4], 0x40d53e
mov dword [esp], edi
mov eax, dword [ebp - 0x108]
call eax
mov dword [esp], edi
mov ecx, dword [ebp - 0xfc]
call dword [0x412610]
mov eax, dword [ebp - 0x4c]
sub esp, 4
mov edx, dword [eax]
test edx, edx
jne 0x405b70
mov dword [esp], eax
mov dword [esp + 8], 4
mov dword [esp + 4], 2
call dword [0x412554]
mov ecx, dword [ebp - 0xf4]
mov eax, dword [ecx]
cmp eax, 1
ja 0x405b90
mov edx, dword [ecx + 0xc]
mov eax, ecx
cmp edx, 0x10
jne 0x405b90
jmp 0x405bbc
mov eax, dword [ebp - 0xcc]
mov dword [esp + 8], 4
mov dword [esp + 4], 2
mov dword [esp], eax
call dword [0x412554]
jmp 0x4059bf
mov eax, dword [ebp - 0x2c]
mov dword [esp], eax
mov dword [esp + 8], 4
add ebx, 1
mov dword [esp + 4], 2
call dword [0x412554]
mov eax, dword [ebp - 0xf4]
cmp ebx, dword [eax + 4]
jl 0x405c83
mov edx, dword [ebp - 0xf8]
mov dword [ebp - 0x2c], edx
mov eax, dword [edx]
add eax, 1
cmp eax, 1
jbe 0x405d63
lock add dword [edx], 1
lea eax, [ebp - 0x2c]
mov ecx, dword [ebp - 0x120]
mov dword [esp], eax
call fcn.00408160
mov eax, dword [ebp - 0x2c]
sub esp, 4
mov edx, dword [eax]
test edx, edx
je 0x405e77
cmp edx, 0xffffffff
je 0x405d93
lock sub dword [eax], 1
je 0x405e74
mov eax, dword [ebp - 0xf4]
cmp dword [eax + 4], 0xf
jle 0x405dac
mov edx, dword [eax + 0xc]
cmp byte [eax + edx], 0xfd
je 0x40603d
mov edi, dword [ebp - 0x120]
movzx eax, word [edi + 0x20]
mov word [ebp - 0x108], ax
add eax, 1
cmp ax, 9
mov word [edi + 0x20], ax
jbe 0x405660
mov dword [esp + 4], 0xf
mov dword [esp], str.
mov eax, dword [ebp - 0x100]
call eax
mov edi, dword [ebp - 0x120]
mov dword [ebp - 0x2c], eax
lea eax, [ebp - 0x2c]
mov dword [esp], eax
mov ecx, edi
call fcn.00408120
lea ecx, [ebp - 0x2c]
sub esp, 4
xor ebx, ebx
call fcn.0040af20
mov word [edi + 0x20], bx
mov eax, dword [ebp - 0x120]
movzx eax, byte [eax + 8]
test al, al
je 0x40644e
lea ecx, [ebp - 0x30]
call dword [0x412658]
jmp 0x405228
mov eax, dword [ebp - 0xc4]
mov dword [esp + 8], 4
mov dword [esp + 4], 2
mov dword [esp], eax
call dword [0x412554]
jmp 0x405c55
mov eax, dword [ebp - 0xe0]
mov dword [esp + 8], 4
mov dword [esp + 4], 1
mov dword [esp], eax
call dword [0x412554]
jmp 0x405398
mov eax, dword [ebp - 0x2c]
mov dword [esp + 8], 4
mov dword [esp + 4], 2
mov dword [esp], eax
call dword [0x412554]
jmp 0x405d93
mov eax, dword [ebp - 0x50]
mov dword [esp + 8], 4
mov dword [esp + 4], 2
mov dword [esp], eax
call dword [0x412554]
jmp 0x405b4b
mov eax, dword [ebp - 0xc8]
mov dword [esp + 8], 4
mov dword [esp + 4], 1
mov dword [esp], eax
call dword [0x412554]
jmp 0x405b02
mov eax, dword [ebp - 0x2c]
mov dword [esp + 8], 4
mov dword [esp + 4], 2
mov dword [esp], eax
call dword [0x412554]
jmp 0x405ab2
mov eax, dword [ebp - 0x58]
mov dword [esp + 8], 4
mov dword [esp + 4], 2
mov dword [esp], eax
call dword [0x412554]
jmp 0x4058f0
mov dword [esp], 3
mov ecx, dword [ebp - 0x128]
call dword [0x412568]
mov edx, dword [ebp - 0xf0]
sub esp, 4
mov ecx, dword [edx + 0xc]
jmp 0x4057b3
mov dword [esp], 2
mov ecx, dword [ebp - 0x128]
call dword [0x412568]
mov edx, dword [ebp - 0xf0]
sub esp, 4
mov ecx, dword [edx + 0xc]
jmp 0x405767
mov dword [esp], 1
mov ecx, dword [ebp - 0x128]
call dword [0x412568]
mov edx, dword [ebp - 0xf0]
sub esp, 4
mov ecx, dword [edx + 0xc]
jmp 0x40571b
mov dword [esp], 0
mov ecx, dword [ebp - 0x128]
call dword [0x412568]
mov edx, dword [ebp - 0xf0]
sub esp, 4
mov ecx, dword [edx + 0xc]
jmp 0x4056d0
mov eax, dword [ebp - 0x2c]
mov dword [esp + 8], 4
mov dword [esp + 4], 2
mov dword [esp], eax
call dword [0x412554]
jmp 0x4054c6
mov eax, dword [ecx + 0xc]
cmp eax, 0x10
jne 0x4057c9
jmp 0x4057f5
mov edx, dword [ecx + 0xc]
mov eax, ecx
cmp edx, 0x10
jne 0x40582d
jmp 0x405859
mov ecx, dword [eax + 0xc]
mov edx, eax
cmp ecx, 0x10
jne 0x4056a4
jmp 0x4056d0
mov ecx, dword [eax + 0xc]
mov edx, eax
cmp ecx, 0x10
jne 0x405787
jmp 0x4057b3
mov ecx, dword [eax + 0xc]
mov edx, eax
cmp ecx, 0x10
jne 0x40573b
jmp 0x405767
mov ecx, dword [eax + 0xc]
mov edx, eax
cmp ecx, 0x10
jne 0x4056ef
jmp 0x40571b
cmp byte [eax + edx + 2], 3
jne 0x405dac
lea ebx, [ebp - 0x48]
mov dword [esp + 8], 0xe
mov dword [esp + 4], str.BootLoader:_0x
mov eax, dword [ebp - 0x108]
mov dword [esp], ebx
call eax
mov eax, dword [ebp - 0xf8]
mov edx, dword [ebp - 0x48]
mov ecx, ebx
mov dword [ebp - 0xf8], edx
mov dword [ebp - 0x48], eax
call fcn.0040af20
mov eax, dword [ebp - 0xf4]
mov edx, dword [eax + 0xc]
movzx ebx, byte [eax + edx + 9]
mov dword [esp + 4], 2
mov dword [esp], 0x40d540
mov eax, dword [ebp - 0x100]
call eax
mov dword [ebp - 0x2c], eax
mov eax, 0x30
lea edi, [ebp - 0xc0]
mov word [esp + 0x14], ax
mov eax, dword [0x4126a8]
lea esi, [ebp - 0x2c]
mov dword [esp + 4], ebx
sar ebx, 0x1f
mov dword [esp + 0x10], 0x10
mov dword [esp + 0xc], 2
mov dword [esp + 8], ebx
mov ecx, edi
mov dword [esp], esi
mov dword [ebp - 0x118], eax
call eax
lea esi, [ebp - 0xbc]
sub esp, 0x18
mov ebx, dword [0x412600]
mov dword [esp + 4], edi
mov dword [esp], esi
call ebx
mov edx, dword [0x412610]
mov dword [esp], esi
mov ecx, dword [ebp - 0xfc]
mov dword [ebp - 0x110], edx
call edx
sub esp, 4
mov ecx, esi
call fcn.0040af20
mov ecx, edi
call fcn.0040af20
lea ecx, [ebp - 0x2c]
call fcn.0040af20
mov eax, dword [ebp - 0xf4]
mov edi, dword [ebp - 0x100]
mov edx, dword [eax + 0xc]
movzx esi, byte [eax + edx + 8]
mov dword [esp + 4], 2
mov dword [esp], 0x40d540
call edi
mov dword [esp + 4], esi
sar esi, 0x1f
lea edi, [ebp - 0xb8]
mov dword [esp + 8], esi
lea esi, [ebp - 0x2c]
mov dword [ebp - 0x2c], eax
mov eax, 0x30
mov dword [esp + 0x10], 0x10
mov dword [esp + 0xc], 2
mov word [esp + 0x14], ax
mov dword [esp], esi
mov ecx, edi
call dword [ebp - 0x118]
lea esi, [ebp - 0xb4]
sub esp, 0x18
mov dword [esp + 4], edi
mov dword [esp], esi
call ebx
mov dword [esp], esi
mov ecx, dword [ebp - 0xfc]
call dword [ebp - 0x110]
sub esp, 4
mov ecx, esi
call fcn.0040af20
mov ecx, edi
call fcn.0040af20
lea ecx, [ebp - 0x2c]
call fcn.0040af20
mov eax, dword [ebp - 0xf4]
mov edi, dword [ebp - 0x100]
mov edx, dword [eax + 0xc]
movzx esi, byte [eax + edx + 7]
mov dword [esp + 4], 2
mov dword [esp], 0x40d540
call edi
mov dword [esp + 4], esi
sar esi, 0x1f
lea edi, [ebp - 0xb0]
mov dword [esp + 8], esi
lea esi, [ebp - 0x2c]
mov dword [ebp - 0x2c], eax
mov eax, 0x30
mov dword [esp + 0x10], 0x10
mov dword [esp + 0xc], 2
mov word [esp + 0x14], ax
mov dword [esp], esi
mov ecx, edi
call dword [ebp - 0x118]
lea esi, [ebp - 0xac]
sub esp, 0x18
mov dword [esp + 4], edi
mov dword [esp], esi
call ebx
mov dword [esp], esi
mov ecx, dword [ebp - 0xfc]
call dword [ebp - 0x110]
sub esp, 4
mov ecx, esi
call fcn.0040af20
mov ecx, edi
call fcn.0040af20
lea ecx, [ebp - 0x2c]
call fcn.0040af20
mov eax, dword [ebp - 0xf4]
mov edi, dword [ebp - 0x100]
mov edx, dword [eax + 0xc]
movzx esi, byte [eax + edx + 6]
mov dword [esp + 4], 2
mov dword [esp], 0x40d540
call edi
mov dword [esp + 4], esi
sar esi, 0x1f
lea edi, [ebp - 0xa8]
mov dword [esp + 8], esi
lea esi, [ebp - 0x2c]
mov dword [ebp - 0x2c], eax
mov eax, 0x30
mov dword [esp + 0x10], 0x10
mov dword [esp + 0xc], 2
mov word [esp + 0x14], ax
mov dword [esp], esi
mov ecx, edi
call dword [ebp - 0x118]
lea esi, [ebp - 0xa4]
sub esp, 0x18
mov dword [esp + 4], edi
mov dword [esp], esi
call ebx
mov dword [esp], esi
mov ecx, dword [ebp - 0xfc]
call dword [ebp - 0x110]
sub esp, 4
mov ecx, esi
lea esi, [ebp - 0x2c]
call fcn.0040af20
mov ecx, edi
call fcn.0040af20
mov ecx, esi
lea esi, [ebp - 0x44]
call fcn.0040af20
mov dword [esp + 8], 0x10
mov dword [esp + 4], str.BoardType:_0x
mov dword [esp], esi
mov ecx, dword [ebp - 0x108]
call ecx
mov dword [esp], esi
mov ecx, dword [ebp - 0xfc]
call dword [ebp - 0x110]
sub esp, 4
mov ecx, esi
call fcn.0040af20
mov eax, dword [ebp - 0xf4]
mov edi, dword [ebp - 0x100]
mov edx, dword [eax + 0xc]
movzx esi, byte [eax + edx + 5]
mov dword [esp + 4], 2
mov dword [esp], 0x40d540
call edi
mov dword [esp + 4], esi
sar esi, 0x1f
lea edi, [ebp - 0xa0]
mov dword [esp + 8], esi
lea esi, [ebp - 0x2c]
mov dword [ebp - 0x2c], eax
mov eax, 0x30
mov dword [esp + 0x10], 0x10
mov dword [esp + 0xc], 2
mov word [esp + 0x14], ax
mov dword [esp], esi
mov ecx, edi
call dword [ebp - 0x118]
lea esi, [ebp - 0x9c]
sub esp, 0x18
mov dword [esp + 4], edi
mov dword [esp], esi
call ebx
mov dword [esp], esi
mov ecx, dword [ebp - 0xfc]
call dword [ebp - 0x110]
sub esp, 4
mov ecx, esi
lea ebx, [ebp - 0x40]
call fcn.0040af20
mov ecx, edi
lea edi, [ebp - 0x2c]
call fcn.0040af20
mov ecx, edi
call fcn.0040af20
mov dword [esp + 8], 3
mov dword [esp + 4], 0x40d557
mov dword [esp], ebx
mov edi, dword [ebp - 0x108]
call edi
mov dword [esp], ebx
mov ecx, dword [ebp - 0xfc]
call dword [ebp - 0x110]
sub esp, 4
mov ecx, ebx
call fcn.0040af20
mov eax, dword [ebp - 0xf8]
mov dword [ebp - 0x2c], eax
mov edx, dword [eax]
add edx, 1
cmp edx, 1
jbe 0x406424
lock add dword [eax], 1
mov edi, dword [ebp - 0x120]
lea eax, [ebp - 0x2c]
mov dword [esp], eax
mov ecx, edi
call fcn.004080e0
lea ecx, [ebp - 0x2c]
sub esp, 4
call fcn.0040af20
movzx eax, byte [edi + 8]
test al, al
jne 0x406528
mov ecx, dword [ebp - 0x120]
call fcn.00404ab0
lea ecx, [ebp - 0x30]
call dword [0x412658]
lea eax, [ebp - 0xec]
mov dword [ebp - 0x124], eax
jmp 0x404fb1
mov eax, dword [ebp - 0xd0]
mov dword [esp + 8], 4
mov dword [esp + 4], 1
mov dword [esp], eax
call dword [0x412554]
jmp 0x405655
lea ecx, [ebp - 0x30]
call dword [0x412658]
mov ecx, dword [ebp - 0x120]
lea eax, [ebp - 0xec]
mov dword [esp], 1
mov dword [ebp - 0x124], eax
call fcn.004080a0
lea ebx, [ebp - 0x98]
sub esp, 4
lea eax, [ebp - 0xec]
mov dword [esp], str....
mov ecx, ebx
mov dword [ebp - 0x124], eax
call fcn.0040aee0
mov edi, dword [ebp - 0x120]
sub esp, 4
mov dword [esp], ebx
mov ecx, edi
call fcn.004080e0
sub esp, 4
mov ecx, ebx
call fcn.0040af20
mov ecx, dword [ebp - 0x138]
xor edx, edx
mov word [edi + 0x20], dx
test ecx, ecx
je 0x4074e2
lea eax, [ebp - 0xec]
mov dword [ebp - 0x148], 0x3e8
mov dword [ebp - 0x12c], 0
mov dword [ebp - 0x124], eax
mov eax, dword [ebp - 0x12c]
mov dword [esp + 8], 0x40
lea ecx, [ebp - 0x94]
shl eax, 6
mov dword [esp + 4], eax
mov eax, dword [ebp - 0x124]
mov dword [esp], eax
call dword [0x412680]
mov eax, dword [ebp - 0xf0]
mov edx, dword [ebp - 0x94]
lea ecx, [ebp - 0x94]
sub esp, 0xc
mov dword [ebp - 0xf0], edx
mov dword [ebp - 0x94], eax
call fcn.00409a70
mov dword [esp], 0x44
mov ecx, dword [ebp - 0x128]
call dword [0x41256c]
sub esp, 4
mov edx, 7
jmp 0x406676
mov edx, dword [eax]
cmp edx, 1
jbe 0x407320
movsx edx, byte [eax + 0xb]
mov ecx, dword [ebp - 0x128]
shr edx, 0x1f
mov dword [esp + 4], edx
mov eax, dword [eax + 4]
add eax, 1
mov dword [esp], eax
call dword [0x41255c]
mov edx, dword [ebp - 0xf0]
sub esp, 8
mov esi, dword [edx + 0xc]
add edx, ebx
mov eax, edi
cmp ebx, 1
mov byte [esi + edx + 1], al
mov edx, ebx
je 0x4066b8
mov eax, dword [ebp - 0xf0]
lea ebx, [edx - 1]
cmp edx, dword [eax + 4]
mov esi, dword [eax + 0xc]
lea ecx, [eax + ebx]
movzx edi, byte [ecx + esi]
jl 0x406630
mov dword [esp], edx
mov ecx, dword [ebp - 0x128]
call dword [0x412568]
mov edx, dword [ebp - 0xf0]
sub esp, 4
mov eax, edi
mov esi, dword [edx + 0xc]
add edx, ebx
cmp ebx, 1
mov byte [esi + edx + 1], al
mov edx, ebx
jne 0x406676
mov eax, dword [ebp - 0xf0]
cmp dword [eax + 4], 1
jle 0x40733c
mov edx, dword [eax]
cmp edx, 1
jbe 0x407371
movsx edx, byte [eax + 0xb]
mov ecx, dword [ebp - 0x128]
shr edx, 0x1f
mov dword [esp + 4], edx
mov eax, dword [eax + 4]
add eax, 1
mov dword [esp], eax
call dword [0x41255c]
mov edx, dword [ebp - 0xf0]
sub esp, 8
mov ecx, dword [edx + 0xc]
mov byte [edx + ecx + 1], 0x44
mov ecx, dword [ebp - 0xf0]
mov eax, dword [ecx]
cmp eax, 1
jbe 0x407360
movsx eax, byte [ecx + 0xb]
shr eax, 0x1f
mov dword [esp + 4], eax
mov eax, dword [ecx + 4]
mov ecx, dword [ebp - 0x128]
add eax, 1
mov dword [esp], eax
call dword [0x41255c]
mov ecx, dword [ebp - 0xf0]
sub esp, 8
mov eax, dword [ecx + 0xc]
lea esi, [ecx + eax]
lea edi, [ecx + eax + 0x40]
mov ebx, 0xffffffff
mov edx, dword [esi]
mov eax, 0x20
mov dword [ebp - 0x130], esi
jmp 0x406769
add ebx, ebx
add edx, edx
sub eax, 1
je 0x40677e
mov esi, edx
xor esi, ebx
jns 0x406760
add ebx, ebx
add edx, edx
xor ebx, 0x4c11db7
sub eax, 1
jne 0x406769
mov esi, dword [ebp - 0x130]
add esi, 4
cmp esi, edi
jne 0x40674d
mov eax, dword [ecx]
cmp eax, 1
jbe 0x407384
movsx eax, byte [ecx + 0xb]
shr eax, 0x1f
mov dword [esp + 4], eax
mov eax, dword [ecx + 4]
mov ecx, dword [ebp - 0x128]
add eax, 1
mov dword [esp], eax
call dword [0x41255c]
mov edx, dword [ebp - 0xf0]
sub esp, 8
mov eax, dword [edx + 0xc]
mov dword [edx + eax + 0x40], ebx
mov eax, dword [ebp - 0x12c]
add eax, 1
cmp dword [ebp - 0x138], eax
mov dword [ebp - 0x14c], eax
setne al
movzx eax, al
lea eax, [eax*4 + 8]
movzx eax, ax
mov dword [ebp - 0x144], eax
mov eax, 1
mov word [ebp - 0x130], ax
mov eax, dword [ebp - 0x120]
movzx eax, byte [eax + 8]
test al, al
jne 0x406852
mov eax, dword [ebp - 0x120]
movzx eax, byte [eax + 8]
test al, al
je 0x407071
cmp word [ebp - 0x130], 9
ja 0x40745c
add dword [ebp - 0x148], 0x3e8
mov eax, dword [ebp - 0x14c]
cmp dword [ebp - 0x138], eax
je 0x4074ee
mov dword [ebp - 0x12c], eax
jmp 0x4065c3
mov eax, dword [ebp - 0xf0]
mov edi, dword [ebp - 0x120]
mov edx, dword [eax + 4]
mov ecx, dword [edi + 0xc]
mov dword [esp + 4], edx
sar edx, 0x1f
mov dword [esp + 8], edx
add eax, dword [eax + 0xc]
mov dword [esp], eax
call dword [ebp - 0x134]
lea eax, [ebp - 0x3c]
sub esp, 0xc
mov dword [esp + 8], 2
mov dword [esp + 4], 0x40d53b
mov dword [esp], eax
mov eax, dword [ebp - 0x108]
call eax
mov eax, dword [ebp - 0xf8]
mov edx, dword [ebp - 0x3c]
mov dword [ebp - 0x3c], eax
mov dword [ebp - 0xf8], edx
mov edx, dword [eax]
test edx, edx
je 0x4071c1
cmp edx, 0xffffffff
je 0x4068c7
lock sub dword [eax], 1
je 0x4071c1
mov eax, dword [ebp - 0xf0]
mov eax, dword [eax + 4]
test eax, eax
jle 0x406a3b
xor ebx, ebx
lea edi, [ebp - 0x38]
jmp 0x4069af
cmp edx, 0xffffffff
je 0x4068f1
lock sub dword [eax], 1
je 0x40743e
mov eax, dword [ebp - 0xf0]
add eax, dword [eax + 0xc]
movzx esi, byte [eax + ebx]
mov dword [esp + 4], 2
mov dword [esp], 0x40d540
mov eax, dword [ebp - 0x100]
call eax
mov dword [ebp - 0x2c], eax
mov eax, 0x30
mov dword [esp + 4], esi
mov word [esp + 0x14], ax
lea eax, [ebp - 0x2c]
sar esi, 0x1f
mov dword [esp + 0x10], 0x10
mov dword [esp + 0xc], 2
lea ecx, [ebp - 0x90]
mov dword [esp + 8], esi
mov dword [esp], eax
call dword [ebp - 0x118]
lea eax, [ebp - 0x90]
sub esp, 0x18
mov ecx, dword [ebp - 0xfc]
mov dword [esp], eax
call dword [ebp - 0x110]
mov eax, dword [ebp - 0x90]
sub esp, 4
mov edx, dword [eax]
test edx, edx
je 0x406cd0
cmp edx, 0xffffffff
je 0x406989
lock sub dword [eax], 1
je 0x406cc7
mov eax, dword [ebp - 0x2c]
mov edx, dword [eax]
test edx, edx
je 0x406a10
cmp edx, 0xffffffff
je 0x40699d
lock sub dword [eax], 1
je 0x406a07
mov eax, dword [ebp - 0xf0]
add ebx, 1
cmp ebx, dword [eax + 4]
jge 0x406a3b
mov dword [esp + 8], 1
mov dword [esp + 4], 0x40d53e
mov dword [esp], edi
mov eax, dword [ebp - 0x108]
call eax
mov dword [esp], edi
mov ecx, dword [ebp - 0xfc]
call dword [ebp - 0x110]
mov eax, dword [ebp - 0x38]
sub esp, 4
mov edx, dword [eax]
test edx, edx
jne 0x4068e2
mov dword [esp + 8], 4
mov dword [esp + 4], 2
mov dword [esp], eax
call dword [0x412554]
jmp 0x4068f1
mov eax, dword [ebp - 0x2c]
lea esi, [esi]
mov dword [esp], eax
mov dword [esp + 8], 4
add ebx, 1
mov dword [esp + 4], 2
call dword [0x412554]
mov eax, dword [ebp - 0xf0]
cmp ebx, dword [eax + 4]
jl 0x4069af
mov edx, dword [ebp - 0xf8]
mov dword [ebp - 0x2c], edx
mov eax, dword [edx]
add eax, 1
cmp eax, 1
jbe 0x406a52
lock add dword [edx], 1
lea eax, [ebp - 0x2c]
mov ecx, dword [ebp - 0x120]
mov dword [esp], eax
call fcn.00408160
mov eax, dword [ebp - 0x2c]
sub esp, 4
mov edx, dword [eax]
test edx, edx
je 0x4070f6
cmp edx, 0xffffffff
je 0x406a82
lock sub dword [eax], 1
je 0x4070f3
mov eax, dword [ebp - 0x12c]
test eax, eax
je 0x40711d
mov eax, dword [ebp - 0x144]
lea ecx, [ebp - 0x8c]
mov dword [esp + 4], eax
mov eax, dword [ebp - 0x120]
mov dword [esp], eax
call fcn.00404d40
mov eax, dword [ebp - 0xf4]
mov edx, dword [ebp - 0x8c]
sub esp, 8
mov dword [ebp - 0xf4], edx
mov dword [ebp - 0x8c], eax
mov edx, dword [eax]
test edx, edx
je 0x4070cf
cmp edx, 0xffffffff
je 0x406ae2
lock sub dword [eax], 1
je 0x4070cf
lea eax, [ebp - 0x34]
mov dword [esp + 8], 2
mov dword [esp + 4], 0x40d543
mov dword [esp], eax
mov eax, dword [ebp - 0x108]
call eax
mov eax, dword [ebp - 0xf8]
mov edx, dword [ebp - 0x34]
mov dword [ebp - 0x34], eax
mov dword [ebp - 0xf8], edx
mov edx, dword [eax]
test edx, edx
je 0x4070ae
cmp edx, 0xffffffff
je 0x406b2b
lock sub dword [eax], 1
je 0x4070ae
mov eax, dword [ebp - 0xf4]
mov eax, dword [eax + 4]
test eax, eax
jle 0x406d1c
xor ebx, ebx
jmp 0x406c4a
cmp edx, 0xffffffff
je 0x406b52
lock sub dword [eax], 1
je 0x4073d7
mov ecx, dword [ebp - 0xf4]
mov eax, dword [ecx]
cmp eax, 1
jbe 0x406cb4
movsx eax, byte [ecx + 0xb]
shr eax, 0x1f
mov dword [esp + 4], eax
mov eax, dword [ecx + 4]
mov ecx, dword [ebp - 0x11c]
add eax, 1
mov dword [esp], eax
call dword [0x41255c]
mov eax, dword [ebp - 0xf4]
sub esp, 8
mov edx, dword [eax + 0xc]
add eax, ebx
movzx edi, byte [eax + edx]
mov dword [esp + 4], 2
mov dword [esp], 0x40d540
mov eax, dword [ebp - 0x100]
call eax
mov dword [ebp - 0x2c], eax
mov eax, 0x30
lea esi, [ebp - 0x88]
mov word [esp + 0x14], ax
lea eax, [ebp - 0x2c]
mov dword [esp + 4], edi
sar edi, 0x1f
mov dword [esp + 0x10], 0x10
mov dword [esp + 0xc], 2
mov dword [esp + 8], edi
mov dword [esp], eax
mov ecx, esi
call dword [ebp - 0x118]
sub esp, 0x18
mov ecx, dword [ebp - 0xfc]
mov dword [esp], esi
call dword [ebp - 0x110]
mov eax, dword [ebp - 0x88]
sub esp, 4
mov edx, dword [eax]
test edx, edx
je 0x406f50
cmp edx, 0xffffffff
je 0x406c1c
lock sub dword [eax], 1
je 0x406f43
mov eax, dword [ebp - 0x2c]
mov edx, dword [eax]
test edx, edx
je 0x406cf1
cmp edx, 0xffffffff
je 0x406c38
lock sub dword [eax], 1
je 0x406cee
mov eax, dword [ebp - 0xf4]
add ebx, 1
cmp ebx, dword [eax + 4]
jge 0x406d1c
lea eax, [ebp - 0x30]
mov dword [esp + 8], 1
mov dword [esp + 4], 0x40d53e
mov dword [esp], eax
mov eax, dword [ebp - 0x108]
call eax
lea eax, [ebp - 0x30]
mov ecx, dword [ebp - 0xfc]
mov dword [esp], eax
call dword [ebp - 0x110]
mov eax, dword [ebp - 0x30]
sub esp, 4
mov edx, dword [eax]
test edx, edx
jne 0x406b43
mov dword [esp], eax
mov dword [esp + 8], 4
mov dword [esp + 4], 2
call dword [0x412554]
mov ecx, dword [ebp - 0xf4]
mov eax, dword [ecx]
cmp eax, 1
ja 0x406b63
mov edx, dword [ecx + 0xc]
mov eax, ecx
cmp edx, 0x10
jne 0x406b63
jmp 0x406b8f
mov eax, dword [ebp - 0x90]
lea esi, [esi]
mov dword [esp + 8], 4
mov dword [esp + 4], 2
mov dword [esp], eax
call dword [0x412554]
jmp 0x406989
mov eax, dword [ebp - 0x2c]
mov dword [esp], eax
mov dword [esp + 8], 4
add ebx, 1
mov dword [esp + 4], 2
call dword [0x412554]
mov eax, dword [ebp - 0xf4]
cmp ebx, dword [eax + 4]
jl 0x406c4a
mov edx, dword [ebp - 0xf8]
mov dword [ebp - 0x2c], edx
mov eax, dword [edx]
add eax, 1
cmp eax, 1
jbe 0x406d33
lock add dword [edx], 1
lea eax, [ebp - 0x2c]
mov ecx, dword [ebp - 0x120]
mov dword [esp], eax
call fcn.00408160
mov eax, dword [ebp - 0x2c]
sub esp, 4
mov edx, dword [eax]
test edx, edx
je 0x40713d
cmp edx, 0xffffffff
je 0x406d63
lock sub dword [eax], 1
je 0x40713a
mov eax, dword [ebp - 0xf4]
mov ecx, dword [eax + 4]
test ecx, ecx
je 0x407167
mov edi, dword [ebp - 0x138]
lea ebx, [edi - 1]
cmp ebx, dword [ebp - 0x12c]
ja 0x407245
cmp ebx, dword [ebp - 0x12c]
mov edx, eax
je 0x4072cc
mov eax, dword [edx + 4]
mov dword [ebp - 0x2c], 2
mov dword [ebp - 0x28], 0
mov dword [ebp - 0x24], 0
mov dword [ebp - 0x20], 0
mov dword [ebp - 0x1c], str.default
mov dword [esp + 0xc], eax
mov eax, dword [ebp - 0x12c]
mov dword [esp + 4], str.PackIndx_d__ReadCount_d
mov dword [esp + 8], eax
lea eax, [ebp - 0x2c]
mov dword [esp], eax
call dword [0x41268c]
mov dword [esp + 4], 6
mov dword [esp], str.Read:
mov eax, dword [ebp - 0x100]
call eax
mov edx, dword [ebp - 0xf4]
mov dword [ebp - 0x30], eax
mov edx, dword [edx + 4]
test edx, edx
jle 0x406f9f
xor ebx, ebx
lea esi, [ebp - 0x84]
jmp 0x406ee8
cmp edx, 0xffffffff
je 0x406e2f
lock sub dword [eax], 1
je 0x407427
mov eax, dword [ebp - 0xf4]
add eax, dword [eax + 0xc]
movzx edi, byte [eax + ebx]
mov dword [esp + 4], 2
mov dword [esp], 0x40d540
mov eax, dword [ebp - 0x100]
call eax
mov dword [ebp - 0x2c], eax
mov eax, 0x30
mov dword [esp + 4], edi
mov word [esp + 0x14], ax
lea eax, [ebp - 0x2c]
sar edi, 0x1f
mov dword [esp + 0x10], 0x10
mov dword [esp + 0xc], 2
mov ecx, esi
mov dword [esp + 8], edi
mov dword [esp], eax
call dword [ebp - 0x118]
sub esp, 0x18
lea ecx, [ebp - 0x30]
mov dword [esp], esi
call dword [ebp - 0x110]
mov eax, dword [ebp - 0x84]
sub esp, 4
mov edx, dword [eax]
test edx, edx
je 0x407090
cmp edx, 0xffffffff
je 0x406eba
lock sub dword [eax], 1
je 0x407081
mov eax, dword [ebp - 0x2c]
mov edx, dword [eax]
test edx, edx
je 0x406f71
cmp edx, 0xffffffff
je 0x406ed6
lock sub dword [eax], 1
je 0x406f6e
mov eax, dword [ebp - 0xf4]
add ebx, 1
cmp ebx, dword [eax + 4]
jge 0x406f9c
lea eax, [ebp - 0x2c]
mov dword [esp + 8], 1
mov dword [esp + 4], 0x40d53e
mov dword [esp], eax
mov eax, dword [ebp - 0x108]
call eax
lea eax, [ebp - 0x2c]
lea ecx, [ebp - 0x30]
mov dword [esp], eax
call dword [ebp - 0x110]
mov eax, dword [ebp - 0x2c]
sub esp, 4
mov edx, dword [eax]
test edx, edx
jne 0x406e20
mov dword [esp + 8], 4
mov dword [esp + 4], 2
mov dword [esp], eax
call dword [0x412554]
jmp 0x406e2f
mov eax, dword [ebp - 0x88]
lea esi, [esi]
mov dword [esp + 8], 4
mov dword [esp + 4], 2
mov dword [esp], eax
call dword [0x412554]
jmp 0x406c1c
mov eax, dword [ebp - 0x2c]
mov dword [esp], eax
mov dword [esp + 8], 4
add ebx, 1
mov dword [esp + 4], 2
call dword [0x412554]
mov eax, dword [ebp - 0xf4]
cmp ebx, dword [eax + 4]
jl 0x406ee8
mov eax, dword [ebp - 0x30]
mov dword [ebp - 0x2c], eax
mov edx, dword [eax]
add edx, 1
cmp edx, 1
jbe 0x406fb0
lock add dword [eax], 1
lea eax, [ebp - 0x2c]
mov ecx, dword [ebp - 0x120]
mov dword [esp], eax
call fcn.00408120
mov eax, dword [ebp - 0x2c]
sub esp, 4
mov edx, dword [eax]
test edx, edx
je 0x407227
cmp edx, 0xffffffff
je 0x406fe0
lock sub dword [eax], 1
je 0x407224
mov dword [esp + 4], 0x13
mov dword [esp], str.Err_Ack:_try_again_
mov eax, dword [ebp - 0x100]
call eax
mov dword [ebp - 0x2c], eax
mov ecx, dword [ebp - 0x120]
lea eax, [ebp - 0x2c]
mov dword [esp], eax
call fcn.00408120
mov eax, dword [ebp - 0x2c]
sub esp, 4
mov edx, dword [eax]
test edx, edx
je 0x407206
cmp edx, 0xffffffff
je 0x40702a
lock sub dword [eax], 1
je 0x407203
mov eax, dword [ebp - 0x30]
mov edx, dword [eax]
test edx, edx
je 0x4071e5
cmp edx, 0xffffffff
je 0x407046
lock sub dword [eax], 1
je 0x4071e2
add word [ebp - 0x130], 1
movzx eax, word [ebp - 0x130]
cmp ax, 0xb
jne 0x4067fd
mov eax, dword [ebp - 0x120]
movzx eax, byte [eax + 8]
test al, al
jne 0x40745c
mov ecx, dword [ebp - 0x120]
call fcn.00404ab0
jmp 0x404fb1
mov eax, dword [ebp - 0x84]
mov esi, esi
lea edi, [edi]
mov dword [esp + 8], 4
mov dword [esp + 4], 2
mov dword [esp], eax
call dword [0x412554]
jmp 0x406eba
mov eax, dword [ebp - 0x34]
mov dword [esp + 8], 4
mov dword [esp + 4], 2
mov dword [esp], eax
call dword [0x412554]
jmp 0x406b2b
mov eax, dword [ebp - 0x8c]
mov dword [esp + 8], 4
mov dword [esp + 4], 1
mov dword [esp], eax
call dword [0x412554]
jmp 0x406ae2
mov eax, dword [ebp - 0x2c]
mov dword [esp], eax
mov dword [esp + 8], 4
mov dword [esp + 4], 2
call dword [0x412554]
mov eax, dword [ebp - 0x12c]
test eax, eax
jne 0x406a90
mov eax, dword [ebp - 0x120]
mov ecx, dword [eax + 0xc]
mov eax, dword [ecx]
mov dword [esp], 0x2bc
call dword [eax + 0x5c]
sub esp, 4
jmp 0x406a90
mov eax, dword [ebp - 0x2c]
mov dword [esp], eax
mov dword [esp + 8], 4
mov dword [esp + 4], 2
call dword [0x412554]
mov eax, dword [ebp - 0xf4]
mov ecx, dword [eax + 4]
test ecx, ecx
jne 0x406d74
mov dword [esp + 4], 0x12
mov dword [esp], str.No_Ack:_try_again_
mov eax, dword [ebp - 0x100]
call eax
mov dword [ebp - 0x2c], eax
mov ecx, dword [ebp - 0x120]
lea eax, [ebp - 0x2c]
mov dword [esp], eax
call fcn.00408120
mov eax, dword [ebp - 0x2c]
sub esp, 4
mov edx, dword [eax]
test edx, edx
je 0x4072ae
cmp edx, 0xffffffff
je 0x4071b1
lock sub dword [eax], 1
je 0x4072ab
mov eax, dword [ebp - 0x120]
add word [eax + 0x20], 1
jmp 0x407046
mov eax, dword [ebp - 0x3c]
mov dword [esp + 8], 4
mov dword [esp + 4], 2
mov dword [esp], eax
call dword [0x412554]
jmp 0x4068c7
mov eax, dword [ebp - 0x30]
mov dword [esp + 8], 4
mov dword [esp + 4], 2
mov dword [esp], eax
call dword [0x412554]
jmp 0x407046
mov eax, dword [ebp - 0x2c]
mov dword [esp + 8], 4
mov dword [esp + 4], 2
mov dword [esp], eax
call dword [0x412554]
jmp 0x40702a
mov eax, dword [ebp - 0x2c]
mov dword [esp + 8], 4
mov dword [esp + 4], 2
mov dword [esp], eax
call dword [0x412554]
jmp 0x406fe0
mov edx, dword [eax]
cmp edx, 1
jbe 0x40730f
movsx edx, byte [eax + 0xb]
mov ecx, dword [ebp - 0x11c]
shr edx, 0x1f
mov dword [esp + 4], edx
mov eax, dword [eax + 4]
add eax, 1
mov dword [esp], eax
call dword [0x41255c]
mov eax, dword [ebp - 0xf4]
sub esp, 8
mov edx, dword [eax + 0xc]
cmp byte [eax + edx + 2], 4
jne 0x406d89
mov eax, dword [ebp - 0x148]
xor edx, edx
mov ecx, dword [ebp - 0x120]
div dword [ebp - 0x138]
mov dword [esp], eax
call fcn.00408060
sub esp, 4
jmp 0x40680b
mov eax, dword [ebp - 0x2c]
mov dword [esp + 8], 4
mov dword [esp + 4], 2
mov dword [esp], eax
call dword [0x412554]
jmp 0x4071b1
mov edx, dword [eax]
cmp edx, 1
jbe 0x407330
movsx edx, byte [eax + 0xb]
mov ecx, dword [ebp - 0x11c]
shr edx, 0x1f
mov dword [esp + 4], edx
mov eax, dword [eax + 4]
add eax, 1
mov dword [esp], eax
call dword [0x41255c]
mov edx, dword [ebp - 0xf4]
sub esp, 8
mov ecx, dword [edx + 0xc]
cmp byte [edx + ecx + 2], 5
jne 0x406d97
jmp 0x407287
mov edx, dword [eax + 0xc]
cmp edx, 0x10
jne 0x407250
jmp 0x40727c
cmp esi, 0x10
mov edx, eax
jne 0x40663b
jmp 0x406667
mov ecx, dword [eax + 0xc]
mov edx, eax
cmp ecx, 0x10
jne 0x4072d3
jmp 0x4072ff
mov dword [esp], 1
mov ecx, dword [ebp - 0x128]
call dword [0x412568]
mov edx, dword [ebp - 0xf0]
sub esp, 4
mov ecx, dword [edx + 0xc]
jmp 0x4066ff
mov eax, dword [ecx + 0xc]
cmp eax, 0x10
jne 0x406715
jmp 0x406741
mov ecx, dword [eax + 0xc]
mov edx, eax
cmp ecx, 0x10
jne 0x4066d3
jmp 0x4066ff
mov eax, dword [ecx + 0xc]
mov edx, ecx
cmp eax, 0x10
jne 0x406796
jmp 0x4067c2
mov eax, dword [ebp - 0x30]
jmp 0x406c8a
mov eax, dword [ebp - 0x2c]
jmp 0x406f25
mov eax, dword [ebp - 0x38]
jmp 0x4069e9
mov edi, dword [ebp - 0x12c]
cmp dword [ebp - 0x138], edi
je 0x4074ee
mov ecx, dword [ebp - 0x12c]
test ecx, ecx
jne 0x40771b
lea ebx, [ebp - 0x64]
mov dword [esp], str.binBootLoader
mov ecx, ebx
call fcn.0040aee0
mov ecx, dword [ebp - 0x120]
sub esp, 4
mov dword [esp], ebx
call fcn.004080e0
sub esp, 4
mov ecx, ebx
call fcn.0040af20
lea ebx, [ebp - 0x60]
mov dword [esp], str._____________________________________________________________________________________
mov ecx, ebx
call fcn.0040aee0
mov edi, dword [ebp - 0x120]
sub esp, 4
mov dword [esp], ebx
mov ecx, edi
call fcn.004080e0
mov ecx, ebx
sub esp, 4
call fcn.0040af20
mov ecx, edi
call fcn.00404ab0
jmp 0x404fb1
lea eax, [ebp - 0xec]
mov dword [ebp - 0x124], eax
mov eax, dword [0x412558]
lea esi, [ebp - 0x7c]
mov dword [esp], esi
mov dword [ebp - 0x30], eax
mov eax, dword [0x412648]
mov dword [ebp - 0x12c], eax
call eax
mov eax, dword [0x4126b4]
mov ecx, esi
mov dword [ebp - 0x110], eax
call eax
sub eax, dword [ebp - 0x140]
lea ebx, [ebp - 0x80]
mov dword [esp], str._1
sbb edx, dword [ebp - 0x13c]
mov ecx, ebx
mov dword [ebp - 0x108], eax
mov dword [ebp - 0x104], edx
call fcn.0040aee0
sub esp, 4
mov eax, 0x20
mov edx, dword [ebp - 0x104]
mov word [esp + 0x14], ax
mov eax, dword [ebp - 0x108]
lea edi, [ebp - 0x78]
mov dword [esp + 0x10], 0xa
mov dword [esp + 0xc], 0
mov dword [esp + 8], edx
mov dword [esp], ebx
mov ecx, edi
mov dword [esp + 4], eax
call dword [ebp - 0x118]
mov eax, dword [ebp - 0x30]
mov edx, dword [ebp - 0x78]
sub esp, 0x18
mov ecx, edi
mov dword [ebp - 0x30], edx
mov dword [ebp - 0x78], eax
call fcn.0040af20
mov ecx, ebx
call fcn.0040af20
mov eax, dword [0x41264c]
mov ecx, esi
mov dword [ebp - 0x108], eax
call eax
mov ebx, dword [ebp - 0x120]
movzx ebx, word [ebx + 0x20]
test bx, bx
mov word [ebp - 0x100], bx
je 0x4076b1
lea edi, [ebp - 0x70]
mov esi, dword [ebp - 0x12c]
mov dword [esp], edi
call esi
mov ecx, edi
mov esi, dword [ebp - 0x110]
call esi
sub eax, dword [ebp - 0x140]
lea esi, [ebp - 0x74]
mov dword [esp], str._1_2
sbb edx, dword [ebp - 0x13c]
mov ecx, esi
mov dword [ebp - 0x110], eax
mov dword [ebp - 0x10c], edx
call fcn.0040aee0
sub esp, 4
mov eax, 0x20
mov edx, dword [ebp - 0x10c]
mov word [esp + 0x14], ax
mov eax, dword [ebp - 0x110]
lea ebx, [ebp - 0x6c]
mov dword [esp + 0x10], 0xa
mov dword [esp + 0xc], 0
mov dword [esp + 8], edx
mov dword [esp], esi
mov ecx, ebx
mov dword [esp + 4], eax
call dword [ebp - 0x118]
sub esp, 0x18
mov eax, 0x20
lea ecx, [ebp - 0x68]
mov word [esp + 0x14], ax
movzx eax, word [ebp - 0x100]
mov dword [esp + 0x10], 0xa
mov dword [esp + 0xc], 0
mov dword [esp + 8], 0
mov dword [esp], ebx
mov dword [esp + 4], eax
call dword [0x4126ac]
mov eax, dword [ebp - 0x30]
mov edx, dword [ebp - 0x68]
lea ecx, [ebp - 0x68]
sub esp, 0x18
mov dword [ebp - 0x68], eax
mov dword [ebp - 0x30], edx
call fcn.0040af20
mov ecx, ebx
call fcn.0040af20
mov ecx, esi
call fcn.0040af20
mov ecx, edi
mov eax, dword [ebp - 0x108]
call eax
mov ecx, dword [ebp - 0x30]
mov dword [ebp - 0x2c], ecx
call fcn.0040af60
lea eax, [ebp - 0x2c]
mov ecx, dword [ebp - 0x120]
mov dword [esp], eax
call fcn.004080e0
lea ecx, [ebp - 0x2c]
sub esp, 4
call fcn.0040af20
lea ecx, [ebp - 0x30]
call fcn.0040af20
jmp 0x4074a8
mov eax, dword [0x412558]
mov dword [esp + 4], str.Packet:_d
mov dword [ebp - 0x30], eax
mov eax, dword [ebp - 0x12c]
mov dword [esp + 8], eax
lea eax, [ebp - 0x30]
mov dword [esp], eax
call dword [0x412618]
mov edi, dword [ebp - 0x120]
mov ecx, dword [ebp - 0x30]
xor edx, edx
mov word [edi + 0x20], dx
mov dword [ebp - 0x2c], ecx
call fcn.0040af60
lea eax, [ebp - 0x2c]
mov ecx, edi
mov dword [esp], eax
call fcn.004080e0
jmp 0x4076cd
mov eax, dword [ebp - 0x4c]
jmp 0x405cbd
mov eax, dword [ebp - 0x54]
jmp 0x405a1f
lea ebx, [ebp - 0xd4]
mov dword [esp], 0x40d525
mov ecx, ebx
call fcn.0040aee0
mov edi, dword [ebp - 0x120]
sub esp, 4
mov dword [esp], ebx
mov ecx, edi
call fcn.004080e0
mov ecx, ebx
sub esp, 4
call fcn.0040af20
mov ecx, edi
call fcn.00404ab0
mov ecx, esi
call dword [0x412570]
jmp 0x406459
lea ebx, [ebp - 0xd8]
lea eax, [ebp - 0xec]
mov dword [esp], 0x40d4f2
mov ecx, ebx
mov dword [ebp - 0x124], eax
call fcn.0040aee0
mov ecx, dword [ebp - 0x120]
sub esp, 4
mov dword [esp], ebx
call fcn.004080e0
sub esp, 4
mov ecx, ebx
call fcn.0040af20
lea eax, [ebp - 0xec]
mov dword [ebp - 0x124], eax
jmp 0x404fb1
mov ecx, dword [ebp - 0x120]
lea eax, [ebp - 0xec]
mov dword [ebp - 0x124], eax
call fcn.00404ab0
jmp 0x4078e3
mov eax, dword [ebp - 0x2c]
jmp 0x405453