Function at 0x478270
Capabilities:
Access peb ldr_data

Disassembly:
push 0xffffffffffffffff
push 0x48aa75
mov eax, dword fs:[0]
push eax
sub esp, 0xb8
mov eax, dword [0x4ada68]
xor eax, esp
mov dword [esp + 0xb4], eax
push ebx
push ebp
push esi
push edi
mov eax, dword [0x4ada68]
xor eax, esp
push eax
lea eax, [esp + 0xcc]
mov dword fs:[0], eax
mov ebx, dword [esp + 0xdc]
push 0x20
push 0xe
mov dword [esp + 0x20], ecx
mov dword [esp + 0x30], ebx
call fcn.0046da60
mov edi, dword [ebx + 0x10]
mov esi, eax
cmp dword [ebx + 0xc], edi
jbe 0x4782d2
call fcn.00452148
mov eax, dword [ebx + 0xc]
mov ebp, dword [ebx]
mov dword [esp + 0x14], eax
cmp eax, dword [ebx + 0x10]
jbe 0x4782e5
call fcn.00452148
mov eax, dword [ebx]
test ebp, ebp
je 0x4782ef
cmp ebp, eax
je 0x4782f4
call fcn.00452148
sub edi, dword [esp + 0x14]
sar edi, 1
mov dword [esi + 8], edi
mov edi, dword [ebx + 0x28]
cmp dword [ebx + 0x24], edi
jbe 0x47830a
call fcn.00452148
mov eax, dword [ebx + 0x24]
mov ebp, dword [ebx + 0x18]
mov dword [esp + 0x14], eax
cmp eax, dword [ebx + 0x28]
jbe 0x47831e
call fcn.00452148
mov eax, dword [ebx + 0x18]
test ebp, ebp
je 0x478329
cmp ebp, eax
je 0x47832e
call fcn.00452148
sub edi, dword [esp + 0x14]
sar edi, 1
shr edi, 1
mov dword [esi + 0xc], edi
mov edi, dword [ebx + 0x50]
cmp dword [ebx + 0x4c], edi
jbe 0x478346
call fcn.00452148
mov ecx, ebx
mov ebx, dword [ecx + 0x4c]
mov ebp, dword [ecx + 0x40]
cmp ebx, dword [ecx + 0x50]
jbe 0x47835c
call fcn.00452148
mov ecx, dword [esp + 0x28]
mov eax, dword [ecx + 0x40]
test ebp, ebp
je 0x478367
cmp ebp, eax
je 0x478370
call fcn.00452148
mov ecx, dword [esp + 0x28]
mov edx, dword [esp + 0x18]
sub edi, ebx
sar edi, 1
mov dword [esi + 0x10], edi
mov eax, dword [ecx + 0x34]
mov dword [esi + 0x14], eax
mov ecx, dword [ecx + 0x38]
mov dword [esi + 0x18], ecx
mov edx, dword [edx]
test dword [edx + 0x20], 0x100000
je 0x4783d2
mov edi, dword [esp + 0x18]
mov edx, dword [edi + 0x58]
mov ebx, eax
and ebx, edx
cmp ebx, edx
je 0x4783ac
mov edx, dword [edi + 0x5c]
mov ebx, eax
and ebx, edx
cmp ebx, edx
jne 0x4783b4
mov edx, dword [edi + 0x60]
or edx, eax
mov dword [esi + 0x14], edx
mov eax, dword [edi + 0x58]
mov edx, ecx
and edx, eax
cmp edx, eax
je 0x4783ca
mov eax, dword [edi + 0x5c]
mov edx, ecx
and edx, eax
cmp edx, eax
jne 0x4783d2
mov eax, dword [edi + 0x60]
or eax, ecx
mov dword [esi + 0x18], eax
mov edi, dword [esp + 0x28]
mov al, byte [edi + 0x30]
mov edx, dword [esp + 0x18]
mov byte [esi + 0x1c], al
cmp byte [edi + 0x31], 0
sete cl
mov byte [esi + 0x1d], cl
mov eax, dword [edx]
sub esi, dword [eax + 0x144]
mov dword [esp + 0x5c], esi
mov esi, dword [edi + 0xc]
cmp esi, dword [edi + 0x10]
jbe 0x478403
call fcn.00452148
mov ebp, dword [edi]
mov ebx, esi
mov esi, dword [edi + 0x10]
mov dword [esp + 0x1c], ebp
mov dword [esp + 0x14], esi
cmp dword [edi + 0xc], esi
jbe 0x47841c
call fcn.00452148
mov ecx, dword [edi]
mov dword [esp + 0x2c], ecx
test ebp, ebp
je 0x47842c
cmp ebp, dword [esp + 0x2c]
je 0x478431
call fcn.00452148
cmp ebx, esi
je 0x478581
test ebp, ebp
jne 0x478539
call fcn.00452148
xor eax, eax
cmp ebx, dword [eax + 0x10]
jb 0x478452
call fcn.00452148
mov eax, dword [esp + 0x18]
mov esi, dword [eax]
mov eax, dword [esi + 0x148]
mov ecx, dword [esi + 0x140]
xor edx, edx
cmp byte [ebx + 1], dl
setne dl
add esi, 0x140
sub ecx, eax
add edx, 2
mov edi, edx
cmp ecx, edi
jae 0x478489
sub edx, dword [esi + 4]
mov ecx, esi
add edx, eax
call fcn.004873d0
mov ebp, dword [esi + 8]
mov ecx, dword [esp + 0x1c]
add edi, ebp
mov dword [esi + 8], edi
test ecx, ecx
jne 0x478541
call fcn.00452148
mov ecx, dword [esp + 0x1c]
xor eax, eax
cmp ebx, dword [eax + 0x10]
jb 0x4784b6
call fcn.00452148
mov ecx, dword [esp + 0x1c]
mov edx, dword [esp + 0x18]
cmp byte [edx + 0xc], 0
mov al, byte [ebx]
je 0x4784d1
mov edx, dword [edx + 4]
mov edx, dword [edx]
movzx eax, al
mov al, byte [edx + eax + 0x104]
mov byte [ebp], al
test ecx, ecx
jne 0x478548
call fcn.00452148
mov ecx, dword [esp + 0x1c]
xor eax, eax
cmp ebx, dword [eax + 0x10]
jb 0x4784f1
call fcn.00452148
mov ecx, dword [esp + 0x1c]
cmp byte [ebx + 1], 0
je 0x478550
test ecx, ecx
jne 0x47854c
call fcn.00452148
mov ecx, dword [esp + 0x1c]
xor eax, eax
cmp ebx, dword [eax + 0x10]
jb 0x478514
call fcn.00452148
mov ecx, dword [esp + 0x1c]
mov edx, dword [esp + 0x18]
cmp byte [edx + 0xc], 0
mov al, byte [ebx + 1]
je 0x478530
mov edx, dword [edx + 4]
mov edx, dword [edx]
movzx eax, al
mov al, byte [edx + eax + 0x104]
mov byte [ebp + 1], al
mov byte [ebp + 2], 0
jmp 0x478554
mov eax, dword [ebp]
jmp 0x478448
mov eax, dword [ecx]
jmp 0x4784a8
mov eax, dword [ecx]
jmp 0x4784e3
mov eax, dword [ecx]
jmp 0x478506
mov byte [ebp + 1], 0
test ecx, ecx
jne 0x47857d
call fcn.00452148
xor eax, eax
cmp ebx, dword [eax + 0x10]
jb 0x478569
call fcn.00452148
mov edi, dword [esp + 0x28]
mov esi, dword [esp + 0x14]
mov ebp, dword [esp + 0x1c]
add ebx, 2
jmp 0x478422
mov eax, dword [ecx]
jmp 0x47855f
mov esi, dword [edi + 0x24]
cmp esi, dword [edi + 0x28]
jbe 0x47858e
call fcn.00452148
mov eax, dword [edi + 0x18]
mov dword [esp + 0x1c], eax
mov eax, dword [edi + 0x28]
mov dword [esp + 0x20], esi
mov dword [esp + 0x58], eax
cmp dword [edi + 0x24], eax
jbe 0x4785aa
call fcn.00452148
mov ecx, dword [edi + 0x18]
mov dword [esp + 0x60], ecx
mov esi, dword [esp + 0x1c]
test esi, esi
je 0x4785bf
cmp esi, dword [esp + 0x60]
je 0x4785c4
call fcn.00452148
mov edi, dword [esp + 0x20]
cmp edi, dword [esp + 0x58]
je 0x478dd6
test esi, esi
jne 0x478620
call fcn.00452148
xor eax, eax
cmp edi, dword [eax + 0x10]
jb 0x4785e7
call fcn.00452148
mov ebp, dword [esp + 0x18]
mov al, byte [ebp + 0xc]
mov cl, byte [edi]
mov bl, byte [edi + 1]
mov edx, dword [ebp + 4]
test al, al
je 0x47860a
mov esi, dword [edx]
movzx ecx, cl
mov cl, byte [ecx + esi + 0x104]
mov esi, dword [esp + 0x1c]
mov byte [esp + 0x34], cl
test al, al
je 0x478624
mov edx, dword [edx]
movzx eax, bl
mov al, byte [eax + edx + 0x104]
jmp 0x478626
mov eax, dword [esi]
jmp 0x4785dd
mov al, bl
mov byte [esp + 0x35], al
test esi, esi
jne 0x478686
call fcn.00452148
xor eax, eax
cmp edi, dword [eax + 0x10]
jb 0x47863f
call fcn.00452148
add edi, 2
test esi, esi
jne 0x47868a
call fcn.00452148
xor eax, eax
cmp edi, dword [eax + 0x10]
jb 0x478657
call fcn.00452148
mov al, byte [ebp + 0xc]
mov cl, byte [edi]
mov edx, dword [ebp + 4]
test al, al
je 0x47866f
mov esi, dword [edx]
movzx ecx, cl
mov cl, byte [ecx + esi + 0x104]
mov byte [esp + 0x2c], cl
test al, al
je 0x47868e
movzx eax, byte [edi + 1]
mov edx, dword [edx]
mov al, byte [eax + edx + 0x104]
jmp 0x478691
mov eax, dword [esi]
jmp 0x478635
mov eax, dword [esi]
jmp 0x47864d
mov al, byte [edi + 1]
mov byte [esp + 0x2d], al
mov eax, dword [esp + 0x1c]
xor ebp, ebp
cmp eax, ebp
jne 0x4788a2
call fcn.00452148
xor eax, eax
cmp edi, dword [eax + 0x10]
jb 0x4786b4
call fcn.00452148
add edi, 2
mov eax, 0xf
mov dword [esp + 0x20], edi
mov dword [esp + 0xa8], eax
mov dword [esp + 0xa4], ebp
mov byte [esp + 0x94], 0
mov dword [esp + 0xd4], ebp
mov dword [esp + 0xc4], eax
mov dword [esp + 0xc0], ebp
mov byte [esp + 0xb0], 0
mov esi, dword [esp + 0x18]
mov ecx, dword [esi]
test dword [ecx + 0x20], 0x200000
mov ebx, 1
mov byte [esp + 0xd4], bl
je 0x4788a9
movzx edx, byte [esp + 0x34]
mov al, byte [esp + 0x35]
mov cl, byte [esp + 0x2c]
mov byte [esp + 0x14], dl
movzx edx, byte [esp + 0x2d]
mov byte [esp + 0x15], al
test al, al
mov byte [esp + 0x16], 0
mov byte [esp + 0x24], cl
mov byte [esp + 0x25], dl
mov byte [esp + 0x26], 0
lea eax, [esp + 0x16]
jne 0x47874a
lea eax, [esp + 0x15]
push eax
lea eax, [esp + 0x18]
push eax
lea ecx, [esp + 0x44]
push ecx
mov ecx, dword [esi + 4]
call fcn.0046e760
push 0xffffffffffffffff
push ebp
push eax
lea ecx, [esp + 0x9c]
mov byte [esp + 0xe0], 2
call fcn.00416130
mov edi, 0x10
mov byte [esp + 0xd4], bl
cmp dword [esp + 0x54], edi
jb 0x478794
mov edx, dword [esp + 0x40]
push edx
call fcn.00430536
add esp, 4
cmp byte [esp + 0x25], 0
lea eax, [esp + 0x26]
jne 0x4787a3
lea eax, [esp + 0x25]
push eax
lea eax, [esp + 0x28]
push eax
lea ecx, [esp + 0x44]
push ecx
mov ecx, dword [esi + 4]
call fcn.0046e760
push 0xffffffffffffffff
push ebp
push eax
lea ecx, [esp + 0xb8]
mov byte [esp + 0xe0], 3
call fcn.00416130
mov byte [esp + 0xd4], bl
cmp dword [esp + 0x54], edi
jb 0x4787e8
mov edx, dword [esp + 0x40]
push edx
call fcn.00430536
add esp, 4
cmp dword [esp + 0xa4], ebp
jne 0x47883d
mov dword [esp + 0x54], 0xf
mov byte [esp + 0x40], 0
mov dword [esp + 0x50], ebx
mov byte [esp + 0x41], 0
push 0xffffffffffffffff
push ebp
lea eax, [esp + 0x44]
push eax
lea ecx, [esp + 0x9c]
mov byte [esp + 0xe0], 4
call fcn.00416130
mov byte [esp + 0xd4], bl
cmp dword [esp + 0x54], edi
jb 0x47883d
mov ecx, dword [esp + 0x40]
push ecx
call fcn.00430536
add esp, 4
mov edi, dword [esp + 0xc0]
cmp edi, ebp
jne 0x478ad3
mov dword [esp + 0x54], 0xf
mov byte [esp + 0x40], 0
mov dword [esp + 0x50], ebx
mov byte [esp + 0x41], 0
push 0xffffffffffffffff
push ebp
lea edx, [esp + 0x44]
push edx
lea ecx, [esp + 0xb8]
mov byte [esp + 0xe0], 5
call fcn.00416130
cmp dword [esp + 0x54], 0x10
mov byte [esp + 0xd4], bl
jb 0x478acc
mov eax, dword [esp + 0x40]
push eax
call fcn.00430536
add esp, 4
jmp 0x478acc
mov eax, dword [eax]
jmp 0x4786aa
cmp byte [esp + 0x35], 0
je 0x47894b
mov edx, dword [esp + 0x34]
push edx
lea ecx, [esp + 0x98]
push ecx
lea eax, [esp + 0x98]
push eax
lea eax, [esp + 0x74]
push eax
lea ecx, [esp + 0xa0]
call fcn.0046fc40
mov edx, dword [esp + 0xa8]
mov eax, dword [esp + 0x94]
mov esi, eax
cmp edx, 0x10
jae 0x4788f6
lea esi, [esp + 0x94]
mov edi, dword [esp + 0xa4]
add esi, edi
cmp esi, ebp
je 0x478927
mov ecx, eax
cmp edx, 0x10
jae 0x478911
lea ecx, [esp + 0x94]
cmp ecx, esi
ja 0x478927
cmp edx, 0x10
jae 0x478921
lea eax, [esp + 0x94]
add eax, edi
cmp esi, eax
jbe 0x47892c
call fcn.00452148
mov ecx, dword [esp + 0x35]
push ecx
lea eax, [esp + 0x94]
push esi
push eax
lea edx, [esp + 0x94]
push edx
mov ecx, eax
call fcn.0046fc40
jmp 0x478997
mov dword [esp + 0x54], eax
mov al, byte [esp + 0x34]
mov byte [esp + 0x40], al
mov dword [esp + 0x50], ebx
mov byte [esp + 0x41], 0
push 0xffffffffffffffff
push ebp
lea ecx, [esp + 0x44]
push ecx
lea ecx, [esp + 0x9c]
mov byte [esp + 0xe0], 6
call fcn.00416130
cmp dword [esp + 0x54], 0x10
mov byte [esp + 0xd4], bl
jb 0x478997
mov edx, dword [esp + 0x40]
push edx
call fcn.00430536
add esp, 4
cmp byte [esp + 0x2d], 0
mov eax, dword [esp + 0xb0]
mov edi, dword [esp + 0xc4]
mov esi, eax
je 0x478a70
cmp edi, 0x10
jae 0x4789be
lea esi, [esp + 0xb0]
mov edx, dword [esp + 0xc0]
add esi, edx
cmp esi, ebp
je 0x4789ef
mov ecx, eax
cmp edi, 0x10
jae 0x4789d9
lea ecx, [esp + 0xb0]
cmp ecx, esi
ja 0x4789ef
cmp edi, 0x10
jae 0x4789e9
lea eax, [esp + 0xb0]
add eax, edx
cmp esi, eax
jbe 0x4789f4
call fcn.00452148
mov ecx, dword [esp + 0x2c]
push ecx
lea eax, [esp + 0xb0]
push esi
push eax
lea edx, [esp + 0x84]
push edx
mov ecx, eax
call fcn.0046fc40
mov edx, dword [esp + 0xc4]
mov eax, dword [esp + 0xb0]
mov esi, eax
cmp edx, 0x10
jae 0x478a2d
lea esi, [esp + 0xb0]
mov edi, dword [esp + 0xc0]
add esi, edi
cmp esi, ebp
je 0x478a5e
mov ecx, eax
cmp edx, 0x10
jae 0x478a48
lea ecx, [esp + 0xb0]
cmp ecx, esi
ja 0x478a5e
cmp edx, 0x10
jae 0x478a58
lea eax, [esp + 0xb0]
add eax, edi
cmp esi, eax
jbe 0x478a63
call fcn.00452148
mov ecx, dword [esp + 0x2d]
lea edx, [esp + 0x80]
jmp 0x478aba
cmp edi, 0x10
jae 0x478a7c
lea esi, [esp + 0xb0]
mov edx, dword [esp + 0xc0]
add esi, edx
cmp esi, ebp
je 0x478aad
mov ecx, eax
cmp edi, 0x10
jae 0x478a97
lea ecx, [esp + 0xb0]
cmp ecx, esi
ja 0x478aad
cmp edi, 0x10
jae 0x478aa7
lea eax, [esp + 0xb0]
add eax, edx
cmp esi, eax
jbe 0x478ab2
call fcn.00452148
mov ecx, dword [esp + 0x2c]
lea edx, [esp + 0x70]
push ecx
push esi
lea eax, [esp + 0xb4]
push eax
push edx
mov ecx, eax
call fcn.0046fc40
mov edi, dword [esp + 0xc0]
cmp dword [esp + 0xa8], 0x10
mov edx, dword [esp + 0x94]
jae 0x478aeb
lea edx, [esp + 0x94]
mov ecx, dword [esp + 0xa4]
cmp edi, ecx
jae 0x478af8
mov ecx, edi
mov esi, dword [esp + 0xc4]
mov ebx, dword [esp + 0xb0]
mov eax, ebx
cmp esi, 0x10
jae 0x478b14
lea eax, [esp + 0xb0]
push ecx
push edx
push eax
call fcn.00415cd0
add esp, 0xc
cmp eax, ebp
jne 0x478b3d
mov eax, dword [esp + 0xa4]
cmp edi, eax
jb 0x478d8d
xor ecx, ecx
cmp edi, eax
setne cl
mov eax, ecx
cmp eax, ebp
jl 0x478d8d
mov eax, dword [esp + 0x18]
mov esi, dword [eax]
mov edx, dword [esp + 0xa4]
mov eax, dword [esi + 0x148]
mov ecx, dword [esi + 0x140]
add esi, 0x140
lea edi, [edi + edx + 2]
sub ecx, eax
cmp ecx, edi
jae 0x478b7a
mov edx, edi
sub edx, dword [esi + 4]
mov ecx, esi
add edx, eax
call fcn.004873d0
mov ebx, dword [esi + 8]
add edi, ebx
mov dword [esi + 8], edi
mov ecx, dword [esp + 0xa8]
mov edx, dword [esp + 0x94]
mov eax, edx
cmp ecx, 0x10
jae 0x478b9e
lea eax, [esp + 0x94]
mov esi, dword [esp + 0xa4]
lea edi, [eax + esi]
cmp edi, ebp
je 0x478bd2
mov eax, edx
cmp ecx, 0x10
jae 0x478bba
lea eax, [esp + 0x94]
cmp eax, edi
ja 0x478bd2
mov eax, edx
cmp ecx, 0x10
jae 0x478bcc
lea eax, [esp + 0x94]
add eax, esi
cmp edi, eax
jbe 0x478be5
call fcn.00452148
mov ecx, dword [esp + 0xa8]
mov edx, dword [esp + 0x94]
cmp ecx, 0x10
jb 0x478d75
mov esi, edx
cmp edx, ebp
je 0x478c21
mov eax, edx
cmp ecx, 0x10
jae 0x478c02
lea eax, [esp + 0x94]
cmp eax, esi
ja 0x478c21
mov eax, edx
cmp ecx, 0x10
jae 0x478c14
lea eax, [esp + 0x94]
mov edx, dword [esp + 0xa4]
add eax, edx
cmp esi, eax
jbe 0x478c26
call fcn.00452148
sub edi, esi
mov eax, edi
cmp eax, ebp
jle 0x478c3a
push eax
push esi
push eax
push ebx
call fcn.004506d9
add esp, 0x10
mov eax, dword [esp + 0xa4]
mov byte [ebx + eax], 0
mov ecx, dword [esp + 0xa4]
mov edx, dword [esp + 0xb0]
lea ebx, [ebx + ecx + 1]
mov ecx, dword [esp + 0xc4]
mov eax, edx
cmp ecx, 0x10
jae 0x478c6c
lea eax, [esp + 0xb0]
mov esi, dword [esp + 0xc0]
lea edi, [eax + esi]
cmp edi, ebp
je 0x478ca0
mov eax, edx
cmp ecx, 0x10
jae 0x478c88
lea eax, [esp + 0xb0]
cmp eax, edi
ja 0x478ca0
mov eax, edx
cmp ecx, 0x10
jae 0x478c9a
lea eax, [esp + 0xb0]
add eax, esi
cmp edi, eax
jbe 0x478cb3
call fcn.00452148
mov ecx, dword [esp + 0xc4]
mov edx, dword [esp + 0xb0]
cmp ecx, 0x10
jb 0x478d81
mov esi, edx
cmp edx, ebp
je 0x478cef
mov eax, edx
cmp ecx, 0x10
jae 0x478cd0
lea eax, [esp + 0xb0]
cmp eax, esi
ja 0x478cef
mov eax, edx
cmp ecx, 0x10
jae 0x478ce2
lea eax, [esp + 0xb0]
mov edx, dword [esp + 0xc0]
add eax, edx
cmp esi, eax
jbe 0x478cf4
call fcn.00452148
sub edi, esi
mov eax, edi
cmp eax, ebp
jle 0x478d08
push eax
push esi
push eax
push ebx
call fcn.004506d9
add esp, 0x10
mov eax, dword [esp + 0xc0]
mov byte [ebx + eax], 0
cmp dword [esp + 0xc4], 0x10
jb 0x478d2d
mov ecx, dword [esp + 0xb0]
push ecx
call fcn.00430536
add esp, 4
cmp dword [esp + 0xa8], 0x10
mov dword [esp + 0xc4], 0xf
mov dword [esp + 0xc0], ebp
mov byte [esp + 0xb0], 0
mov dword [esp + 0xd4], 0xffffffff
jb 0x4785b1
mov edx, dword [esp + 0x94]
push edx
call fcn.00430536
add esp, 4
jmp 0x4785b1
lea esi, [esp + 0x94]
jmp 0x478bf4
lea esi, [esp + 0xb0]
jmp 0x478cc2
cmp esi, 0x10
jb 0x478d9b
push ebx
call fcn.00430536
add esp, 4
cmp dword [esp + 0xa8], 0x10
mov dword [esp + 0xc4], 0xf
mov dword [esp + 0xc0], ebp
mov byte [esp + 0xb0], 0
jb 0x478dcf
mov eax, dword [esp + 0x94]
push eax
call fcn.00430536
add esp, 4
xor eax, eax
jmp 0x4790d5
mov edi, dword [esp + 0x28]
mov esi, dword [edi + 0x4c]
cmp esi, dword [edi + 0x50]
jbe 0x478de7
call fcn.00452148
mov eax, dword [edi + 0x50]
mov ecx, dword [edi + 0x40]
mov dword [esp + 0x1c], ecx
mov ebp, esi
mov dword [esp + 0x58], eax
cmp dword [edi + 0x4c], eax
jbe 0x478e01
call fcn.00452148
mov edx, dword [edi + 0x40]
mov dword [esp + 0x60], edx
mov edi, dword [esp + 0x1c]
test edi, edi
je 0x478e16
cmp edi, dword [esp + 0x60]
je 0x478e1b
call fcn.00452148
cmp ebp, dword [esp + 0x58]
je 0x4790c2
mov dword [esp + 0xa8], 0xf
mov dword [esp + 0xa4], 0
mov byte [esp + 0x94], 0
mov dword [esp + 0xd4], 7
test edi, edi
jne 0x478f05
call fcn.00452148
xor eax, eax
cmp ebp, dword [eax + 0x10]
jb 0x478e67
call fcn.00452148
cmp byte [ebp + 1], 0
lea esi, [ebp + 1]
je 0x478f17
test edi, edi
jne 0x478f0c
call fcn.00452148
xor eax, eax
cmp ebp, dword [eax + 0x10]
jb 0x478e8d
call fcn.00452148
mov al, byte [ebp]
mov byte [esp + 0x14], al
test edi, edi
jne 0x478f13
call fcn.00452148
xor eax, eax
cmp ebp, dword [eax + 0x10]
jb 0x478ea9
call fcn.00452148
mov cl, byte [esi]
mov esi, dword [esp + 0x18]
lea edx, [esp + 0x16]
push edx
mov byte [esp + 0x19], cl
lea eax, [esp + 0x18]
push eax
lea ecx, [esp + 0x44]
push ecx
mov ecx, dword [esi + 4]
mov byte [esp + 0x22], 0
call fcn.00476150
push 0xffffffffffffffff
push 0
push eax
lea ecx, [esp + 0x9c]
mov byte [esp + 0xe0], 8
call fcn.00416130
cmp dword [esp + 0x54], 0x10
mov byte [esp + 0xd4], 7
jb 0x478f91
mov edx, dword [esp + 0x40]
push edx
jmp 0x478f89
mov eax, dword [edi]
jmp 0x478e5d
mov eax, dword [edi]
jmp 0x478e83
mov eax, dword [edi]
jmp 0x478e9f
test edi, edi
jne 0x4790a0
call fcn.00452148
xor eax, eax
cmp ebp, dword [eax + 0x10]
jb 0x478f30
call fcn.00452148
test edi, edi
jne 0x4790a7
call fcn.00452148
xor eax, eax
cmp ebp, dword [eax + 0x10]
jb 0x478f49
call fcn.00452148
push esi
mov esi, dword [esp + 0x1c]
mov ecx, dword [esi + 4]
push ebp
lea eax, [esp + 0x44]
push eax
call fcn.00476150
push 0xffffffffffffffff
push 0
push eax
lea ecx, [esp + 0x9c]
mov byte [esp + 0xe0], 9
call fcn.00416130
cmp dword [esp + 0x54], 0x10
mov byte [esp + 0xd4], 7
jb 0x478f91
mov ecx, dword [esp + 0x40]
push ecx
call fcn.00430536
add esp, 4
mov edi, dword [esp + 0xa4]
test edi, edi
je 0x4790b2
mov esi, dword [esi]
mov eax, dword [esi + 0x148]
mov edx, dword [esi + 0x140]
add esi, 0x140
inc edi
sub edx, eax
cmp edx, edi
jae 0x478fc9
mov edx, edi
sub edx, dword [esi + 4]
mov ecx, esi
add edx, eax
call fcn.004873d0
mov ebx, dword [esi + 8]
add edi, ebx
mov dword [esi + 8], edi
cmp dword [esp + 0xa8], 0x10
mov eax, dword [esp + 0x94]
jae 0x478fe9
lea eax, [esp + 0x94]
mov ecx, dword [esp + 0xa4]
lea edx, [esp + 0x90]
add eax, ecx
push edx
push eax
lea ecx, [esp + 0x34]
call fcn.0041b5f0
mov eax, dword [esp + 0x94]
mov esi, 0x10
cmp dword [esp + 0xa8], esi
jae 0x479020
lea eax, [esp + 0x94]
lea ecx, [esp + 0x90]
push ecx
push eax
lea ecx, [esp + 0x3c]
call fcn.0041b5f0
mov eax, dword [esp + 0x30]
mov ecx, dword [esp + 0x38]
sub eax, ecx
test eax, eax
jle 0x47904c
push eax
push ecx
push eax
push ebx
call fcn.004506d9
add esp, 0x10
mov eax, dword [esp + 0x1c]
mov edx, dword [esp + 0xa4]
mov byte [ebx + edx], 0
test eax, eax
jne 0x4790ae
call fcn.00452148
xor eax, eax
cmp ebp, dword [eax + 0x10]
jb 0x479070
call fcn.00452148
add ebp, 2
mov dword [esp + 0xd4], 0xffffffff
cmp dword [esp + 0xa8], esi
jb 0x478e08
mov eax, dword [esp + 0x94]
push eax
call fcn.00430536
add esp, 4
jmp 0x478e08
mov eax, dword [edi]
jmp 0x478f26
mov eax, dword [edi]
jmp 0x478f3f
mov eax, dword [eax]
jmp 0x479066
lea ecx, [esp + 0x90]
call fcn.0046ee00
xor eax, eax
jmp 0x4790d5
mov ecx, dword [esp + 0x18]
mov edx, dword [ecx]
mov eax, dword [edx + 0x144]
add eax, dword [esp + 0x5c]
mov dword [ecx + 8], eax
mov ecx, dword [esp + 0xcc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebp
pop ebx
mov ecx, dword [esp + 0xb4]
xor ecx, esp
call fcn.0044ffb2
add esp, 0xc4
ret 8