Function at 0x438180
Capabilities:
Clear file content

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x30
mov dword [ebp - 4], edi
mov dword [ebp - 8], esi
mov dword [ebp - 0xc], ebx
mov esi, dword [ebp + 8]
mov ebx, dword [esi + 0x4c]
test ebx, ebx
jne 0x43819c
mov ebx, dword [esi + 0x3c]
mov edi, dword [esi + 0x40]
test edi, edi
je 0x4381a9
neg edi
add edi, ebx
jmp 0x4381ae
mov edi, ebx
sub edi, dword [esi + 0x38]
lea edx, [edi + 4]
cmp edx, dword [esi + 0xdc]
jbe 0x4381e1
movsx ecx, byte [esi + 0x144]
cmp ecx, 1
je 0x4381e8
push 0x200
mov dword [ebp - 0x10], edx
push esi
call fcn.0043b4a8
mov edx, dword [ebp - 0x10]
add esp, 8
test eax, eax
jne 0x43944c
movsx ecx, byte [esi + 0x144]
lea eax, [ecx - 1]
cmp eax, 7
ja case.0x4381fb.4
mov eax, dword [ecx*4 + 0x4b8fc4]
jmp eax
movsx edx, byte [esi + 0x146]
cmp edx, 1
je 0x4385c2
movzx eax, byte [esi + 0x15d]
test al, 0x40
jne 0x4385c2
mov eax, dword [esi + 0x7c]
test eax, eax
je 0x43831d
movzx eax, byte [eax + 0x1e]
test eax, eax
je 0x43831d
mov eax, dword [esi + 0x128]
cmp eax, 1
je 0x4385c2
mov eax, dword [0x4caa54]
test eax, eax
je 0x43831d
movzx eax, byte [esi + 0x160]
test eax, 0x80
jne 0x4382fc
mov eax, dword [esi + 0x130]
jmp 0x43830b
mov eax, dword [esi + 0x130]
cmp eax, 0xfffffffa
je 0x4385c2
cmp eax, 1
je 0x4385c2
cmp eax, 2
je 0x4385c2
mov eax, dword [esi + 0x40]
test eax, eax
je 0x4395dd
mov byte [eax + edi], 0xd
movsx edx, byte [esi + 0x146]
add edi, 1
jmp 0x4385c2
movsx edx, byte [esi + 0x146]
cmp edx, 1
je 0x4385c2
movzx eax, byte [esi + 0x15d]
test al, 0x40
jne 0x4385c2
mov eax, dword [esi + 0x7c]
test eax, eax
je 0x4383b8
movzx eax, byte [eax + 0x1e]
test eax, eax
je 0x4383b8
mov eax, dword [esi + 0x128]
cmp eax, 1
je 0x4385c2
mov eax, dword [0x4caa54]
test eax, eax
je 0x4383b8
movzx eax, byte [esi + 0x160]
test eax, 0x80
jne 0x438397
mov eax, dword [esi + 0x130]
jmp 0x4383a6
mov eax, dword [esi + 0x130]
cmp eax, 0xfffffffa
je 0x4385c2
cmp eax, 1
je 0x4385c2
cmp eax, 2
je 0x4385c2
mov eax, dword [esi + 0x40]
test eax, eax
je 0x439530
mov byte [eax + edi], 0xa
movsx edx, byte [esi + 0x146]
add edi, 1
jmp 0x4385c2
mov ecx, dword [esi + 0x40]
add edi, 0xfffffffc
mov dword [ebp - 0x20], edi
mov eax, edi
and eax, 0xff
test ecx, ecx
mov dword [ebp - 0x18], eax
je 0x439546
movzx eax, byte [esi + 0x15d]
test al, 0x20
je 0x438435
mov eax, edi
shr eax, 0x18
mov dword [ebp - 0x24], eax
mov byte [ecx], al
mov ebx, dword [esi + 0x40]
mov ecx, edi
shr ecx, 0x10
movzx ecx, cl
mov dword [ebp - 0x1c], ecx
mov byte [ebx + 1], cl
mov ecx, dword [esi + 0x40]
shr edi, 8
mov eax, edi
and eax, 0xff
mov dword [ebp - 0x14], eax
mov byte [ecx + 2], al
mov edi, dword [esi + 0x40]
mov eax, dword [ebp - 0x18]
mov byte [edi + 3], al
jmp 0x438465
movzx eax, byte [ebp - 0x20]
movzx ebx, byte [ebp - 0x1e]
mov dword [ebp - 0x18], eax
mov byte [ecx], al
mov edi, dword [esi + 0x40]
movzx ecx, byte [ebp - 0x1f]
mov dword [ebp - 0x14], ecx
mov dword [ebp - 0x1c], ebx
mov byte [edi + 1], cl
mov eax, dword [esi + 0x40]
mov byte [eax + 2], bl
movzx eax, byte [ebp - 0x1d]
mov ecx, dword [esi + 0x40]
mov byte [ecx + 3], al
mov dword [ebp - 0x24], eax
movzx eax, byte [esi + 0x15d]
test al, 0x20
je 0x438495
mov eax, dword [ebp - 0x24]
mov ecx, dword [ebp - 0x1c]
mov edi, dword [esi + 0x3c]
mov byte [edi], al
mov ebx, dword [esi + 0x3c]
mov eax, dword [ebp - 0x14]
mov byte [ebx + 1], cl
mov ecx, dword [esi + 0x3c]
mov byte [ecx + 2], al
mov ecx, dword [esi + 0x3c]
mov eax, dword [ebp - 0x18]
mov byte [ecx + 3], al
jmp 0x4384b8
mov eax, dword [ebp - 0x18]
mov ecx, dword [ebp - 0x14]
mov edi, dword [esi + 0x3c]
mov byte [edi], al
mov ebx, dword [esi + 0x3c]
mov eax, dword [ebp - 0x1c]
mov byte [ebx + 1], cl
mov ecx, dword [esi + 0x3c]
mov byte [ecx + 2], al
mov ecx, dword [esi + 0x3c]
mov eax, dword [ebp - 0x24]
mov byte [ecx + 3], al
mov edi, edx
movsx edx, byte [esi + 0x146]
jmp 0x4385c2
mov edx, dword [esi + 0xe4]
cmp edi, edx
jae 0x4384e4
sub edx, edi
push edx
push 0x20
push ebx
call fcn.004a3ab8
add esp, 0xc
mov edi, dword [esi + 0xe4]
movzx edx, byte [esi + 0x158]
test dl, 4
je case.0x4381fb.6
movzx edx, byte [esi + 0x15a]
test dl, 0x40
je case.0x4381fb.6
movzx edx, byte [esi + 0x15b]
test dl, 8
je case.0x4381fb.6
movsx edx, byte [esi + 0x146]
cmp edx, 1
je 0x4385c2
movzx ecx, byte [esi + 0x15d]
test cl, 0x40
jne 0x4385c2
mov ecx, dword [esi + 0x7c]
test ecx, ecx
je 0x438584
movzx ecx, byte [ecx + 0x1e]
test ecx, ecx
je 0x438584
mov ecx, dword [esi + 0x128]
cmp ecx, 1
je 0x4385c2
mov ecx, dword [0x4caa54]
test ecx, ecx
je 0x438584
movzx ecx, byte [esi + 0x160]
test ecx, 0x80
jne 0x43856f
mov ecx, dword [esi + 0x130]
jmp 0x43857a
mov ecx, dword [esi + 0x130]
cmp ecx, 0xfffffffa
je 0x4385c2
cmp ecx, 1
je 0x4385c2
cmp ecx, 2
je 0x4385c2
mov edx, dword [esi + 0x40]
test edx, edx
je 0x4395c1
mov byte [edx + edi - 2], 0xd
mov edx, dword [esi + 0x40]
mov byte [edx + edi - 1], 0xa
movsx edx, byte [esi + 0x146]
jmp 0x4385c2
push 0x375
push str.for_put.c
push 2
push 8
call fcn.00434a44
add esp, 0x10
movsx edx, byte [esi + 0x146]
mov eax, dword [esi + 0x40]
test eax, eax
je 0x4385ce
mov dword [ebp - 0x10], eax
jmp 0x4385d4
mov ecx, dword [esi + 0x38]
mov dword [ebp - 0x10], ecx
cmp edx, 2
jne 0x43880d
mov eax, dword [esi + 0x7c]
test eax, eax
je 0x43866b
movzx edx, byte [eax + 0x1c]
test edx, edx
jne 0x4385f8
movzx edx, byte [eax + 0x1d]
test edx, edx
je 0x438664
movzx edx, byte [eax + 0x20]
test edx, edx
je 0x438641
mov edx, dword [esi + 0x128]
cmp edx, 1
je 0x438664
mov edx, dword [0x4caa54]
test edx, edx
je 0x438641
movzx edx, byte [esi + 0x160]
test edx, 0x80
jne 0x43862c
mov edx, dword [esi + 0x130]
jmp 0x438637
mov edx, dword [esi + 0x130]
cmp edx, 0xfffffffa
je 0x438664
cmp edx, 1
je 0x438664
cmp edx, 2
je 0x438664
mov byte [ebp - 0x24], 0xa
lea edx, [ebp - 0x24]
mov eax, esi
mov ecx, 1
call fcn.00439654
cmp eax, 0xffffffff
je 0x4395f3
mov eax, dword [esi + 0x7c]
test eax, eax
je 0x43866b
mov byte [eax + 0x1c], 0
mov eax, dword [esi + 0x7c]
movzx edx, byte [esi + 0x158]
test dl, 4
je 0x438693
movzx edx, byte [esi + 0x15a]
test dl, 0x40
je 0x438693
movzx edx, byte [esi + 0x15b]
test dl, 8
jne 0x438748
movsx edx, byte [esi + 0x144]
cmp edx, 6
je 0x438748
cmp edx, 8
je 0x438748
movzx edx, byte [esi + 0x15d]
mov dword [ebp - 0x14], edx
test dl, 0x40
jne 0x43873d
test eax, eax
je 0x438713
movzx edx, byte [eax + 0x1e]
test edx, edx
je 0x438713
mov edx, dword [esi + 0x128]
mov dword [ebp - 0x18], edx
cmp edx, 1
je 0x43875b
mov edx, dword [0x4caa54]
test edx, edx
je 0x438713
movzx edx, byte [esi + 0x160]
test edx, 0x80
jne 0x4386fe
mov edx, dword [esi + 0x130]
jmp 0x438709
mov edx, dword [esi + 0x130]
cmp edx, 0xfffffffa
je 0x43875b
cmp edx, 1
je 0x43875b
cmp edx, 2
je 0x43875b
mov edx, dword [esi + 0x40]
test edx, edx
je 0x439611
mov byte [edx + edi], 0xa
mov eax, dword [esi + 0x7c]
mov edx, dword [esi + 0x128]
movzx ecx, byte [esi + 0x15d]
mov dword [ebp - 0x18], edx
add edi, 1
mov dword [ebp - 0x14], ecx
jmp 0x43875b
mov edx, dword [esi + 0x128]
mov dword [ebp - 0x18], edx
jmp 0x43875b
mov edx, dword [esi + 0x128]
movzx ecx, byte [esi + 0x15d]
mov dword [ebp - 0x18], edx
mov dword [ebp - 0x14], ecx
mov edx, dword [ebp - 0x14]
and edx, 0xffffffbf
mov byte [esi + 0x15d], dl
test eax, eax
je 0x4387ba
movzx edx, byte [eax + 0x1e]
test edx, edx
je 0x4387ba
mov edx, dword [ebp - 0x18]
cmp edx, 1
je 0x4387b1
mov edx, dword [0x4caa54]
test edx, edx
je 0x4387c2
movzx edx, byte [esi + 0x160]
test edx, 0x80
je 0x4387a1
mov edx, dword [esi + 0x130]
cmp edx, 0xfffffffa
je 0x4387b1
jmp 0x4387a7
mov edx, dword [esi + 0x130]
cmp edx, 2
je 0x4387b1
cmp edx, 1
jne 0x4387c2
mov byte [eax + 0x20], 1
jmp 0x4393d9
mov edx, dword [ebp - 0x18]
cmp edx, 1
je 0x438800
mov edx, dword [0x4caa54]
test edx, edx
je 0x4393d9
movzx edx, byte [esi + 0x160]
test edx, 0x80
je 0x4387ec
mov edx, dword [esi + 0x130]
cmp edx, 0xfffffffa
je 0x438800
jmp 0x4387f2
mov edx, dword [esi + 0x130]
cmp edx, 2
je 0x438800
cmp edx, 1
jne 0x4393d9
test eax, eax
jne 0x4393d5
jmp 0x4393d9
cmp edx, 1
jne 0x43933a
lea edx, [edi + 1]
cmp edi, 5
je 0x438820
mov edx, edi
mov dword [ebp - 0x14], edx
test eax, eax
je 0x43882f
lea edx, [eax + 4]
mov dword [ebp - 0x10], edx
jmp 0x438838
mov edx, dword [esi + 0x38]
add edx, 4
mov dword [ebp - 0x10], edx
mov edx, dword [ebp - 0x14]
lea edi, [edx - 4]
test eax, eax
je 0x43961d
movsx edx, byte [eax + 5]
cmp edx, 0x31
ja case.0x43885a.1
mov edx, dword [edx*4 + 0x4b8f00]
jmp edx
movzx edx, byte [esi + 0x158]
mov dword [ebp - 0x24], edx
test dl, 2
je 0x438a4b
mov edx, dword [esi + 0x128]
cmp edx, 1
je 0x4388b8
mov edx, dword [0x4caa54]
test edx, edx
je 0x438a4b
movzx edx, byte [esi + 0x160]
test edx, 0x80
je 0x4388a4
mov edx, dword [esi + 0x130]
cmp edx, 0xfffffffa
je 0x4388b8
jmp 0x4388aa
mov edx, dword [esi + 0x130]
cmp edx, 2
je 0x4388b8
cmp edx, 1
jne 0x438a4b
mov eax, dword [esi + 0x7c]
add dword [ebp - 0x10], 1
test eax, eax
je 0x4389e1
movzx edx, byte [eax + 0x1e]
test edx, edx
je 0x43896e
mov edx, dword [ebp - 0x24]
and edx, 4
shr edx, 2
mov dword [ebp - 0x24], edx
test edx, edx
je 0x4388f3
movzx edx, byte [eax + 0x20]
test edx, edx
je 0x4388f3
mov edx, dword [ebp - 0x14]
lea edi, [edx - 5]
jmp 0x438953
movzx edx, byte [eax + 0x1c]
test edx, edx
jne 0x438903
movzx edx, byte [eax + 0x1d]
test edx, edx
je 0x438949
mov eax, dword [ebp - 0x24]
test eax, eax
je 0x438934
mov edx, dword [ebp - 0x10]
mov ecx, dword [ebp - 0x14]
add edx, 0xfffffffc
mov dword [ebp - 0x10], edx
mov eax, 0xd
mov byte [edx], 0xa
mov byte [edx + 2], al
mov byte [edx + 4], al
lea edi, [ecx - 1]
mov byte [edx + 1], 0xc
mov byte [edx + 3], 0x20
mov eax, dword [esi + 0x7c]
jmp 0x438943
mov eax, dword [ebp - 0x10]
mov edx, dword [ebp - 0x14]
mov byte [eax], 0xc
mov eax, dword [esi + 0x7c]
lea edi, [edx - 5]
test eax, eax
jne 0x438953
jmp 0x438965
mov edx, dword [ebp - 0x14]
add dword [ebp - 0x10], 1
lea edi, [edx - 6]
mov byte [eax + 0x1c], 0
mov eax, dword [esi + 0x7c]
test eax, eax
je 0x438965
mov byte [eax + 0x1d], 0
mov eax, dword [esi + 0x7c]
mov byte [eax + 0x20], 1
jmp 0x4393d9
movzx edx, byte [eax + 0x20]
test edx, edx
je 0x4389a1
mov edx, dword [ebp - 0x24]
test dl, 4
je 0x43898b
mov edx, dword [ebp - 0x10]
mov byte [edx + edi - 1], 0xd
jmp 0x438a1b
mov edx, dword [ebp - 0x10]
mov edi, dword [ebp - 0x14]
add edx, 1
mov dword [ebp - 0x10], edx
lea edi, [edi - 5]
mov byte [edi + edx - 1], 0xd
jmp 0x438a1b
movzx edx, byte [eax + 0x1c]
test edx, edx
jne 0x4389b1
movzx edx, byte [eax + 0x1d]
test edx, edx
je 0x4389e1
mov edx, dword [ebp - 0x24]
test dl, 4
je 0x438a10
mov ecx, dword [ebp - 0x10]
add ecx, 0xfffffffc
mov byte [ecx], 0xa
mov edx, 0xd
mov byte [ecx + 1], 0xc
mov dword [ebp - 0x10], ecx
mov byte [ecx + 2], dl
mov byte [ecx + 3], 0x20
mov byte [ecx + 4], dl
mov byte [ecx + edi + 3], dl
mov edi, dword [ebp - 0x14]
jmp 0x438a1b
mov edx, dword [ebp - 0x24]
test dl, 4
je 0x438a10
mov ecx, dword [ebp - 0x10]
mov eax, dword [ebp - 0x14]
add ecx, 0xfffffffd
mov dword [ebp - 0x10], ecx
mov edx, 0xd
mov byte [ecx], 0xc
mov byte [ecx + 1], dl
mov byte [ecx + 3], dl
mov byte [ecx + 2], 0x20
mov byte [ecx + edi + 2], dl
lea edi, [eax - 1]
jmp 0x438a1b
mov edx, dword [ebp - 0x10]
mov byte [edx], 0xc
mov byte [edx + edi - 1], 0xd
mov edx, dword [esi + 0x7c]
mov byte [edx + 0x1c], 1
mov ecx, dword [esi + 0x7c]
mov dword [ecx + 0x10], esi
mov edx, dword [esi + 0x7c]
test edx, edx
je 0x4393d9
mov byte [edx + 0x1d], 0
mov edx, dword [esi + 0x7c]
test edx, edx
je 0x4393d9
mov byte [edx + 0x20], 0
jmp 0x4393d9
mov ecx, dword [esi + 0x7c]
add dword [ebp - 0x10], 1
test ecx, ecx
je 0x438a96
movzx edx, byte [ecx + 0x1c]
test edx, edx
jne 0x438a66
movzx edx, byte [ecx + 0x1d]
test edx, edx
je 0x438a96
mov edx, dword [ebp - 0x24]
test dl, 4
je 0x438ac5
mov ecx, dword [ebp - 0x10]
add ecx, 0xfffffffc
mov byte [ecx], 0xa
mov edx, 0xd
mov byte [ecx + 1], 0xc
mov dword [ebp - 0x10], ecx
mov byte [ecx + 2], dl
mov byte [ecx + 3], 0x20
mov byte [ecx + 4], dl
mov byte [ecx + edi + 3], dl
mov edi, dword [ebp - 0x14]
jmp 0x438ad0
mov edx, dword [ebp - 0x24]
test dl, 4
je 0x438ac5
mov ecx, dword [ebp - 0x10]
mov eax, dword [ebp - 0x14]
add ecx, 0xfffffffd
mov dword [ebp - 0x10], ecx
mov edx, 0xd
mov byte [ecx], 0xc
mov byte [ecx + 1], dl
mov byte [ecx + 3], dl
mov byte [ecx + 2], 0x20
mov byte [ecx + edi + 2], dl
lea edi, [eax - 1]
jmp 0x438ad0
mov edx, dword [ebp - 0x10]
mov byte [edx], 0xc
mov byte [edx + edi - 1], 0xd
mov edx, dword [esi + 0x7c]
mov byte [edx + 0x1c], 1
mov ecx, dword [esi + 0x7c]
mov dword [ecx + 0x10], esi
mov edx, dword [esi + 0x7c]
test edx, edx
je 0x4393d9
mov byte [edx + 0x1d], 0
mov edx, dword [esi + 0x7c]
test edx, edx
je 0x4393d9
mov byte [edx + 0x20], 0
jmp 0x4393d9
movzx eax, byte [esi + 0x158]
test al, 2
je 0x438cff
mov edx, dword [esi + 0x128]
cmp edx, 1
je 0x438b58
mov edx, dword [0x4caa54]
test edx, edx
je 0x438cff
movzx edx, byte [esi + 0x160]
test edx, 0x80
je 0x438b44
mov edx, dword [esi + 0x130]
cmp edx, 0xfffffffa
je 0x438b58
jmp 0x438b4a
mov edx, dword [esi + 0x130]
cmp edx, 2
je 0x438b58
cmp edx, 1
jne 0x438cff
mov edx, dword [esi + 0x7c]
mov dword [ebp - 0x24], edx
test edx, edx
je 0x438ca1
movzx ecx, byte [edx + 0x1e]
test ecx, ecx
je 0x438c15
and eax, 4
shr eax, 2
test eax, eax
je 0x438b90
movzx ecx, byte [edx + 0x20]
test ecx, ecx
je 0x438b90
mov eax, dword [ebp - 0x14]
add dword [ebp - 0x10], 1
lea edi, [eax - 5]
jmp 0x438bef
movzx ecx, byte [edx + 0x1c]
test ecx, ecx
jne 0x438ba0
movzx ecx, byte [edx + 0x1d]
test ecx, ecx
je 0x438be5
test eax, eax
je 0x438bc9
mov edi, dword [ebp - 0x10]
mov edx, dword [ebp - 0x14]
add edi, 0xffffffff
mov dword [ebp - 0x10], edi
mov eax, 0xa
mov byte [edi + 1], 0xd
mov byte [edi], al
mov byte [edi + 2], al
mov ecx, dword [esi + 0x7c]
mov dword [ebp - 0x24], ecx
lea edi, [edx - 3]
jmp 0x438bdc
mov ecx, dword [ebp - 0x10]
mov edx, 0xa
mov byte [ecx], dl
mov byte [ecx + 1], dl
mov ebx, dword [esi + 0x7c]
mov dword [ebp - 0x24], ebx
mov edx, dword [ebp - 0x24]
test edx, edx
jne 0x438bef
jmp 0x438c09
mov eax, dword [ebp - 0x14]
add dword [ebp - 0x10], 2
lea edi, [eax - 6]
mov byte [edx + 0x1c], 0
mov ecx, dword [esi + 0x7c]
test ecx, ecx
mov dword [ebp - 0x24], ecx
je 0x438c09
mov edx, ecx
mov byte [edx + 0x1d], 0
mov ecx, dword [esi + 0x7c]
mov dword [ebp - 0x24], ecx
mov edx, dword [ebp - 0x24]
mov byte [edx + 0x20], 1
jmp 0x4393d9
movzx ecx, byte [edx + 0x20]
test ecx, ecx
je 0x438c4d
test al, 4
je 0x438c34
mov edx, dword [ebp - 0x10]
add edx, 1
mov byte [edx + edi - 1], 0xd
mov dword [ebp - 0x10], edx
jmp 0x438ccf
mov edx, dword [ebp - 0x10]
mov edi, dword [ebp - 0x14]
add edx, 2
mov dword [ebp - 0x10], edx
lea edi, [edi - 5]
mov byte [edi + edx - 1], 0xd
jmp 0x438ccf
movzx ecx, byte [edx + 0x1c]
test ecx, ecx
jne 0x438c5d
movzx ecx, byte [edx + 0x1d]
test ecx, ecx
je 0x438ca1
test al, 4
je 0x438c88
mov ecx, dword [ebp - 0x10]
mov ebx, dword [ebp - 0x14]
add ecx, 0xffffffff
mov dword [ebp - 0x10], ecx
mov eax, 0xa
mov byte [ecx], al
mov edx, 0xd
mov byte [ecx + 1], dl
mov byte [ecx + 2], al
mov byte [ecx + edi + 1], dl
lea edi, [ebx - 2]
jmp 0x438ccf
mov ecx, dword [ebp - 0x10]
mov eax, dword [ebp - 0x14]
mov edx, 0xa
mov byte [ecx], dl
mov byte [ecx + 1], dl
mov byte [ecx + edi], 0xd
lea edi, [eax - 3]
jmp 0x438ccf
test al, 4
je 0x438cbe
mov ecx, dword [ebp - 0x10]
mov eax, dword [ebp - 0x14]
mov byte [ecx + 1], 0xa
mov edx, 0xd
mov byte [ecx], dl
mov byte [ecx + edi], dl
lea edi, [eax - 3]
jmp 0x438ccf
mov edx, dword [ebp - 0x10]
add edx, 1
mov byte [edx], 0xa
mov dword [ebp - 0x10], edx
mov byte [edx + edi - 1], 0xd
mov edx, dword [esi + 0x7c]
mov byte [edx + 0x1c], 1
mov ecx, dword [esi + 0x7c]
mov dword [ecx + 0x10], esi
mov edx, dword [esi + 0x7c]
test edx, edx
je 0x4393d9
mov byte [edx + 0x1d], 0
mov edx, dword [esi + 0x7c]
test edx, edx
je 0x4393d9
mov byte [edx + 0x20], 0
jmp 0x4393d9
mov ecx, dword [esi + 0x7c]
test ecx, ecx
je 0x438d5a
movzx edx, byte [ecx + 0x1c]
test edx, edx
jne 0x438d16
movzx edx, byte [ecx + 0x1d]
test edx, edx
je 0x438d5a
test al, 4
je 0x438d41
mov ecx, dword [ebp - 0x10]
mov ebx, dword [ebp - 0x14]
add ecx, 0xffffffff
mov dword [ebp - 0x10], ecx
mov eax, 0xa
mov byte [ecx], al
mov edx, 0xd
mov byte [ecx + 1], dl
mov byte [ecx + 2], al
mov byte [ecx + edi + 1], dl
lea edi, [ebx - 2]
jmp 0x438d88
mov ecx, dword [ebp - 0x10]
mov eax, dword [ebp - 0x14]
mov edx, 0xa
mov byte [ecx], dl
mov byte [ecx + 1], dl
mov byte [ecx + edi], 0xd
lea edi, [eax - 3]
jmp 0x438d88
test al, 4
je 0x438d77
mov ecx, dword [ebp - 0x10]
mov eax, dword [ebp - 0x14]
mov byte [ecx + 1], 0xa
mov edx, 0xd
mov byte [ecx], dl
mov byte [ecx + edi], dl
lea edi, [eax - 3]
jmp 0x438d88
mov edx, dword [ebp - 0x10]
add edx, 1
mov byte [edx], 0xa
mov dword [ebp - 0x10], edx
mov byte [edx + edi - 1], 0xd
mov edx, dword [esi + 0x7c]
mov byte [edx + 0x1c], 1
mov ecx, dword [esi + 0x7c]
mov dword [ecx + 0x10], esi
mov edx, dword [esi + 0x7c]
test edx, edx
je 0x4393d9
mov byte [edx + 0x1d], 0
mov edx, dword [esi + 0x7c]
test edx, edx
je 0x4393d9
mov byte [edx + 0x20], 0
jmp 0x4393d9
movzx edx, byte [esi + 0x158]
test dl, 2
je 0x438ec3
mov ecx, dword [esi + 0x128]
cmp ecx, 1
je 0x438e11
mov ecx, dword [0x4caa54]
test ecx, ecx
je 0x438ec3
movzx ecx, byte [esi + 0x160]
test ecx, 0x80
je 0x438dfd
mov ecx, dword [esi + 0x130]
cmp ecx, 0xfffffffa
je 0x438e11
jmp 0x438e03
mov ecx, dword [esi + 0x130]
cmp ecx, 2
je 0x438e11
cmp ecx, 1
jne 0x438ec3
mov eax, dword [esi + 0x7c]
test eax, eax
je 0x438e5e
movzx ecx, byte [eax + 0x1e]
test ecx, ecx
je 0x438e5e
test dl, 4
je 0x438e39
movzx edx, byte [eax + 0x20]
test edx, edx
je 0x438e39
mov edx, dword [ebp - 0x14]
add dword [ebp - 0x10], 1
lea edi, [edx - 5]
jmp 0x438e43
mov edx, dword [ebp - 0x14]
add dword [ebp - 0x10], 2
lea edi, [edx - 6]
mov byte [eax + 0x1c], 0
mov edx, dword [esi + 0x7c]
test edx, edx
je 0x438e55
mov byte [edx + 0x1d], 0
mov edx, dword [esi + 0x7c]
mov byte [edx + 0x20], 1
jmp 0x4393d9
test dl, 4
je 0x438e7f
test eax, eax
je 0x438e7f
movzx edx, byte [eax + 0x20]
test edx, edx
je 0x438e7f
mov edx, dword [ebp - 0x10]
add edx, 1
mov byte [edx + edi - 1], 0xd
mov dword [ebp - 0x10], edx
jmp 0x438e93
mov edx, dword [ebp - 0x10]
mov edi, dword [ebp - 0x14]
add edx, 2
mov dword [ebp - 0x10], edx
lea edi, [edi - 5]
mov byte [edi + edx - 1], 0xd
mov edx, dword [esi + 0x7c]
mov byte [edx + 0x1c], 1
mov ecx, dword [esi + 0x7c]
mov dword [ecx + 0x10], esi
mov edx, dword [esi + 0x7c]
test edx, edx
je 0x4393d9
mov byte [edx + 0x1d], 0
mov edx, dword [esi + 0x7c]
test edx, edx
je 0x4393d9
mov byte [edx + 0x20], 0
jmp 0x4393d9
mov edx, dword [ebp - 0x10]
mov edi, dword [ebp - 0x14]
add edx, 2
mov dword [ebp - 0x10], edx
lea edi, [edi - 5]
mov byte [edi + edx - 1], 0xd
mov ecx, dword [esi + 0x7c]
mov byte [ecx + 0x1c], 1
mov ebx, dword [esi + 0x7c]
mov dword [ebx + 0x10], esi
mov edx, dword [esi + 0x7c]
test edx, edx
je 0x4393d9
mov byte [edx + 0x1d], 0
mov edx, dword [esi + 0x7c]
test edx, edx
je 0x4393d9
mov byte [edx + 0x20], 0
jmp 0x4393d9
movzx eax, byte [esi + 0x158]
test al, 2
je 0x43902e
mov eax, dword [esi + 0x128]
cmp eax, 1
je 0x438f5d
mov eax, dword [0x4caa54]
test eax, eax
je 0x43902e
movzx eax, byte [esi + 0x160]
test eax, 0x80
je 0x438f49
mov eax, dword [esi + 0x130]
cmp eax, 0xfffffffa
je 0x438f5d
jmp 0x438f4f
mov eax, dword [esi + 0x130]
cmp eax, 2
je 0x438f5d
cmp eax, 1
jne 0x43902e
mov eax, dword [esi + 0x7c]
test eax, eax
je 0x438ffb
movzx edx, byte [eax + 0x1e]
test edx, edx
je 0x438fc0
movzx edx, byte [eax + 0x1c]
test edx, edx
jne 0x438f80
movzx edx, byte [eax + 0x1d]
test edx, edx
je 0x438f9b
mov eax, dword [ebp - 0x10]
mov edx, dword [ebp - 0x14]
add eax, 1
mov dword [ebp - 0x10], eax
lea edi, [edx - 5]
mov byte [eax], 0xa
mov eax, dword [esi + 0x7c]
test eax, eax
jne 0x438fa5
jmp 0x438fb7
mov edx, dword [ebp - 0x14]
add dword [ebp - 0x10], 2
lea edi, [edx - 6]
mov byte [eax + 0x1c], 0
mov eax, dword [esi + 0x7c]
test eax, eax
je 0x438fb7
mov byte [eax + 0x1d], 0
mov eax, dword [esi + 0x7c]
mov byte [eax + 0x20], 1
jmp 0x4393d9
movzx edx, byte [eax + 0x20]
test edx, edx
je 0x438fd4
mov edx, dword [ebp - 0x14]
add dword [ebp - 0x10], 2
lea edi, [edx - 6]
jmp 0x439009
movzx edx, byte [eax + 0x1c]
test edx, edx
jne 0x438fe4
movzx edx, byte [eax + 0x1d]
test edx, edx
je 0x438ffb
mov eax, dword [ebp - 0x10]
mov edx, dword [ebp - 0x14]
add eax, 1
mov dword [ebp - 0x10], eax
lea edi, [edx - 5]
mov byte [eax], 0xa
mov eax, dword [esi + 0x7c]
jmp 0x439005
mov edx, dword [ebp - 0x14]
add dword [ebp - 0x10], 2
lea edi, [edx - 6]
test eax, eax
je 0x439010
mov byte [eax + 0x1c], 0
mov eax, dword [esi + 0x7c]
mov byte [eax + 0x1d], 1
mov edx, dword [esi + 0x7c]
mov dword [edx + 0x10], esi
mov edx, dword [esi + 0x7c]
test edx, edx
je 0x4393d9
mov byte [edx + 0x20], 0
jmp 0x4393d9
mov edx, dword [esi + 0x7c]
test edx, edx
je 0x43905c
movzx eax, byte [edx + 0x1c]
test eax, eax
jne 0x439045
movzx eax, byte [edx + 0x1d]
test eax, eax
je 0x43905c
mov eax, dword [ebp - 0x10]
mov edx, dword [ebp - 0x14]
add eax, 1
mov dword [ebp - 0x10], eax
lea edi, [edx - 5]
mov byte [eax], 0xa
mov edx, dword [esi + 0x7c]
jmp 0x439066
mov eax, dword [ebp - 0x14]
add dword [ebp - 0x10], 2
lea edi, [eax - 6]
test edx, edx
je 0x439071
mov byte [edx + 0x1c], 0
mov edx, dword [esi + 0x7c]
mov byte [edx + 0x1d], 1
mov edx, dword [esi + 0x7c]
mov dword [edx + 0x10], esi
mov edx, dword [esi + 0x7c]
test edx, edx
je 0x4393d9
mov byte [edx + 0x20], 0
jmp 0x4393d9
movzx eax, byte [esi + 0x158]
test al, 2
je 0x439148
mov eax, dword [esi + 0x128]
cmp eax, 1
je 0x4390e1
mov eax, dword [0x4caa54]
test eax, eax
je 0x439148
movzx eax, byte [esi + 0x160]
test eax, 0x80
je 0x4390d1
mov eax, dword [esi + 0x130]
cmp eax, 0xfffffffa
je 0x4390e1
jmp 0x4390d7
mov eax, dword [esi + 0x130]
cmp eax, 2
je 0x4390e1
cmp eax, 1
jne 0x439148
mov edx, dword [esi + 0x7c]
test edx, edx
je 0x439115
movzx eax, byte [edx + 0x1e]
test eax, eax
je 0x439115
mov eax, dword [ebp - 0x14]
add dword [ebp - 0x10], 2
lea edi, [eax - 6]
mov byte [edx + 0x1c], 0
mov edx, dword [esi + 0x7c]
test edx, edx
je 0x43910c
mov byte [edx + 0x1d], 0
mov edx, dword [esi + 0x7c]
mov byte [edx + 0x20], 1
jmp 0x4393d9
mov eax, dword [ebp - 0x14]
add dword [ebp - 0x10], 2
lea edi, [eax - 6]
test edx, edx
je 0x43912a
mov byte [edx + 0x1c], 0
mov edx, dword [esi + 0x7c]
mov byte [edx + 0x1d], 1
mov edx, dword [esi + 0x7c]
mov dword [edx + 0x10], esi
mov edx, dword [esi + 0x7c]
test edx, edx
je 0x4393d9
mov byte [edx + 0x20], 0
jmp 0x4393d9
mov eax, dword [ebp - 0x14]
mov edx, dword [esi + 0x7c]
add dword [ebp - 0x10], 2
lea edi, [eax - 6]
test edx, edx
je 0x439160
mov byte [edx + 0x1c], 0
mov edx, dword [esi + 0x7c]
mov byte [edx + 0x1d], 1
mov edx, dword [esi + 0x7c]
mov dword [edx + 0x10], esi
mov edx, dword [esi + 0x7c]
test edx, edx
je 0x4393d9
mov byte [edx + 0x20], 0
jmp 0x4393d9
movzx edx, byte [esi + 0x158]
mov dword [ebp - 0x1c], edx
test dl, 2
je 0x4392ce
mov edx, dword [esi + 0x128]
cmp edx, 1
je 0x4391da
mov edx, dword [0x4caa54]
test edx, edx
je 0x4392ce
movzx edx, byte [esi + 0x160]
test edx, 0x80
je 0x4391c6
mov edx, dword [esi + 0x130]
cmp edx, 0xfffffffa
je 0x4391da
jmp 0x4391cc
mov edx, dword [esi + 0x130]
cmp edx, 2
je 0x4391da
cmp edx, 1
jne 0x4392ce
mov eax, dword [esi + 0x7c]
add dword [ebp - 0x10], 1
test eax, eax
je 0x43928a
movzx edx, byte [eax + 0x1e]
test edx, edx
je 0x439253
mov edx, dword [ebp - 0x1c]
test dl, 4
je 0x439209
movzx edx, byte [eax + 0x20]
test edx, edx
je 0x439209
mov edx, dword [ebp - 0x14]
lea edi, [edx - 5]
jmp 0x439238
movzx edx, byte [eax + 0x1c]
test edx, edx
jne 0x439219
movzx edx, byte [eax + 0x1d]
test edx, edx
je 0x43922e
mov eax, dword [ebp - 0x10]
mov edx, dword [ebp - 0x14]
mov byte [eax], 0xa
mov eax, dword [esi + 0x7c]
lea edi, [edx - 5]
test eax, eax
jne 0x439238
jmp 0x43924a
mov edx, dword [ebp - 0x14]
add dword [ebp - 0x10], 1
lea edi, [edx - 6]
mov byte [eax + 0x1c], 0
mov eax, dword [esi + 0x7c]
test eax, eax
je 0x43924a
mov byte [eax + 0x1d], 0
mov eax, dword [esi + 0x7c]
mov byte [eax + 0x20], 1
jmp 0x4393d9
movzx edx, byte [eax + 0x20]
test edx, edx
je 0x43926d
mov edx, dword [ebp - 0x1c]
test dl, 4
je 0x43928a
mov edx, dword [ebp - 0x10]
mov byte [edx + edi - 1], 0xd
jmp 0x43929e
movzx edx, byte [eax + 0x1c]
test edx, edx
jne 0x43927d
movzx edx, byte [eax + 0x1d]
test edx, edx
je 0x43928a
mov edx, dword [ebp - 0x10]
mov byte [edx], 0xa
mov byte [edx + edi - 1], 0xd
jmp 0x43929e
mov edx, dword [ebp - 0x10]
mov edi, dword [ebp - 0x14]
add edx, 1
mov dword [ebp - 0x10], edx
lea edi, [edi - 5]
mov byte [edi + edx - 1], 0xd
mov edx, dword [esi + 0x7c]
mov byte [edx + 0x1c], 1
mov ecx, dword [esi + 0x7c]
mov dword [ecx + 0x10], esi
mov edx, dword [esi + 0x7c]
test edx, edx
je 0x4393d9
mov byte [edx + 0x1d], 0
mov edx, dword [esi + 0x7c]
test edx, edx
je 0x4393d9
mov byte [edx + 0x20], 0
jmp 0x4393d9
mov ecx, dword [esi + 0x7c]
add dword [ebp - 0x10], 1
test ecx, ecx
je 0x4392f6
movzx edx, byte [ecx + 0x1c]
test edx, edx
jne 0x4392e9
movzx edx, byte [ecx + 0x1d]
test edx, edx
je 0x4392f6
mov edx, dword [ebp - 0x10]
mov byte [edx], 0xa
mov byte [edx + edi - 1], 0xd
jmp 0x43930a
mov edx, dword [ebp - 0x10]
mov edi, dword [ebp - 0x14]
add edx, 1
mov dword [ebp - 0x10], edx
lea edi, [edi - 5]
mov byte [edi + edx - 1], 0xd
mov edx, dword [esi + 0x7c]
mov byte [edx + 0x1c], 1
mov ecx, dword [esi + 0x7c]
mov dword [ecx + 0x10], esi
mov edx, dword [esi + 0x7c]
test edx, edx
je 0x4393d9
mov byte [edx + 0x1d], 0
mov edx, dword [esi + 0x7c]
test edx, edx
je 0x4393d9
mov byte [edx + 0x20], 0
jmp 0x4393d9
mov eax, dword [esi + 0x7c]
test eax, eax
je 0x439390
movzx edx, byte [eax + 0x1e]
test edx, edx
je 0x439390
mov edx, dword [esi + 0x128]
cmp edx, 1
je 0x43938a
mov edx, dword [0x4caa54]
test edx, edx
je 0x43939b
movzx edx, byte [esi + 0x160]
test edx, 0x80
je 0x43937a
mov edx, dword [esi + 0x130]
cmp edx, 0xfffffffa
je 0x43938a
jmp 0x439380
mov edx, dword [esi + 0x130]
cmp edx, 2
je 0x43938a
cmp edx, 1
jne 0x43939b
mov byte [eax + 0x20], 1
jmp 0x4393d9
mov edx, dword [esi + 0x128]
cmp edx, 1
je 0x4393d1
mov edx, dword [0x4caa54]
test edx, edx
je 0x4393d9
movzx edx, byte [esi + 0x160]
test edx, 0x80
je 0x4393c1
mov edx, dword [esi + 0x130]
cmp edx, 0xfffffffa
je 0x4393d1
jmp 0x4393c7
mov edx, dword [esi + 0x130]
cmp edx, 2
je 0x4393d1
cmp edx, 1
jne 0x4393d9
test eax, eax
je 0x4393d9
mov byte [eax + 0x20], 0
mov edx, dword [ebp - 0x10]
mov eax, esi
mov ecx, edi
call fcn.00439654
and byte [esi + 0x15c], 0xbf
cmp eax, 0xffffffff
je 0x439629
movzx eax, byte [esi + 0x15d]
test al, 8
je 0x43943d
push dword [esi + 0xd4]
call dword [sym.imp.KERNEL32.dll_SetEndOfFile]
test eax, eax
je 0x439414
xor eax, eax
jmp 0x439425
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov dword [esi + 0xd8], eax
mov eax, 0x26
and byte [esi + 0x15d], 0xf7
test eax, eax
je 0x43943d
mov ebx, dword [ebp - 0xc]
mov esi, dword [ebp - 8]
mov edi, dword [ebp - 4]
mov esp, ebp
pop ebp
ret
mov ebx, dword [ebp - 0xc]
mov esi, dword [ebp - 8]
mov edi, dword [ebp - 4]
xor eax, eax
mov esp, ebp
pop ebp
ret
push 4
mov dword [ebp - 0x10], edx
push esi
call fcn.0043b4a8
mov edx, dword [ebp - 0x10]
add esp, 8
test eax, eax
je 0x4381e1
mov edx, dword [esi + 0x18]
test edx, edx
je 0x4394f3
movzx eax, byte [edx + 0x3c]
test al, 2
je 0x4394a7
mov eax, 0x42
mov dword [edx + 0x30], eax
mov edx, dword [esi + 0x18]
mov dword [edx + 0x34], eax
mov eax, dword [esi + 0x64]
test eax, eax
je 0x439495
xor edx, edx
mov dword [eax + 4], edx
mov dword [esi + 0x64], edx
mov ebx, dword [ebp - 0xc]
mov esi, dword [ebp - 8]
mov edi, dword [ebp - 4]
mov eax, 0x42
mov esp, ebp
pop ebp
ret
movzx eax, byte [esi + 0x15c]
mov edi, eax
and edi, 1
test al, 2
mov edx, 2
jne 0x4394c1
mov edx, 0
test al, 4
mov ecx, 4
mov ebx, 0x42
push ebx
jne 0x4394d5
mov ecx, 0
or edi, edx
or edi, ecx
push ebx
push edi
push 0xffffffffffffffff
push esi
call fcn.00435ec8
add esp, 0x14
mov ebx, dword [ebp - 0xc]
mov esi, dword [ebp - 8]
mov edi, dword [ebp - 4]
mov esp, ebp
pop ebp
ret
push esi
mov eax, 0x42
push eax
push eax
push 1
call fcn.004342fc
add esp, 0x10
mov ebx, dword [ebp - 0xc]
mov esi, dword [ebp - 8]
mov edi, dword [ebp - 4]
mov esp, ebp
pop ebp
ret
mov edx, dword [esi + 0x38]
mov byte [edx + edi], 0xa
movsx edx, byte [esi + 0x146]
add edi, 1
jmp 0x4385c2
movzx eax, byte [esi + 0x15d]
test al, 0x20
je 0x439589
movzx eax, byte [ebp - 0x1d]
movzx ecx, byte [ebp - 0x1e]
mov edi, dword [esi + 0x38]
mov dword [ebp - 0x24], eax
mov byte [edi], al
mov ebx, dword [esi + 0x38]
movzx eax, byte [ebp - 0x1f]
mov dword [ebp - 0x1c], ecx
mov dword [ebp - 0x14], eax
mov byte [ebx + 1], cl
mov ecx, dword [esi + 0x38]
mov byte [ecx + 2], al
movzx eax, byte [ebp - 0x20]
mov ecx, dword [esi + 0x38]
mov byte [ecx + 3], al
mov dword [ebp - 0x18], eax
jmp 0x438465
movzx eax, byte [ebp - 0x20]
movzx ecx, byte [ebp - 0x1f]
mov edi, dword [esi + 0x38]
mov dword [ebp - 0x18], eax
mov byte [edi], al
mov ebx, dword [esi + 0x38]
movzx eax, byte [ebp - 0x1e]
mov dword [ebp - 0x14], ecx
mov dword [ebp - 0x1c], eax
mov byte [ebx + 1], cl
mov ecx, dword [esi + 0x38]
mov byte [ecx + 2], al
movzx eax, byte [ebp - 0x1d]
mov ecx, dword [esi + 0x38]
mov byte [ecx + 3], al
mov dword [ebp - 0x24], eax
jmp 0x438465
mov edx, dword [esi + 0x38]
mov byte [edx + edi - 2], 0xd
mov ecx, dword [esi + 0x38]
mov byte [ecx + edi - 1], 0xa
movsx edx, byte [esi + 0x146]
jmp 0x4385c2
mov edx, dword [esi + 0x38]
mov byte [edx + edi], 0xd
movsx edx, byte [esi + 0x146]
add edi, 1
jmp 0x4385c2
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov ebx, dword [ebp - 0xc]
mov edi, dword [ebp - 4]
mov dword [esi + 0xd8], eax
mov esi, dword [ebp - 8]
mov eax, 0x26
mov esp, ebp
pop ebp
ret
mov edx, dword [esi + 0x38]
mov byte [edx + edi], 0xa
jmp 0x438722
mov edx, dword [esi + 0x38]
movsx edx, byte [edx + 5]
jmp 0x43884a
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov ebx, dword [ebp - 0xc]
mov edi, dword [ebp - 4]
mov dword [esi + 0xd8], eax
mov esi, dword [ebp - 8]
mov eax, 0x26
mov esp, ebp
pop ebp
ret