Function at 0x437740
Capabilities:
Encode data using base64

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x3d4
mov eax, dword [ebp + 8]
mov dword [ebp - 0xc], edi
mov dword [ebp - 8], ebx
mov edi, dword [eax + 4]
test edi, edi
mov dword [ebp - 0x10], esi
mov dword [ebp - 0x14], eax
je 0x4397c8
xor eax, eax
mov ebx, 1
mov esi, dword [edi + 0x58]
mov dword [ebp - 0x18], eax
mov dword [ebp - 0x24], edx
mov dword [ebp - 0x20], eax
mov dword [ebp - 0x1c], eax
mov edx, dword [esi + 0xc]
cmp edx, 1
jle 0x437827
mov eax, dword [esi + 0x38]
lea ecx, [edx - 1]
mov dword [ebp - 4], ecx
mov dword [esi + 0xc], ecx
mov ecx, dword [esi + 0x3c]
and ecx, 1
mov dword [esi + 0x88], eax
add ecx, ecx
movzx eax, byte [esi + 0xa0]
and eax, 0xfffffffd
or eax, ecx
mov byte [esi + 0xa0], al
movzx eax, byte [esi + 0x9f]
test al, 0x10
je 0x437876
test al, 0x20
je 0x437876
mov ecx, dword [ebp + 0xc]
movsx ecx, byte [ecx]
cmp ecx, 2
je 0x438bbf
and eax, 0xffffffdf
cmp ecx, 1
je 0x438b9e
and eax, 0xffffffbf
mov byte [esi + 0x9f], al
push edi
mov dword [ebp - 0x38], edx
call fcn.0044d800
mov edx, dword [ebp - 0x38]
add esp, 4
test eax, eax
jne 0x438b2d
movzx eax, byte [esi + 0x9f]
test al, 0x10
je 0x437816
test al, 0x20
jne 0x439795
mov edx, dword [ebp - 4]
mov dword [esi + 0xc], edx
or eax, 0x20
mov byte [esi + 0x9f], al
jmp 0x437876
mov eax, dword [ebp + 0xc]
movsx edx, byte [eax]
cmp edx, 2
je 0x439773
movzx eax, byte [esi + 0x9f]
and eax, 0xffffffdf
cmp edx, 1
je 0x439752
and eax, 0xffffffbf
mov byte [esi + 0x9f], al
push edi
call fcn.0044d800
add esp, 4
test eax, eax
jne 0x4396e1
movzx eax, byte [esi + 0x9f]
test al, 0x10
je 0x437876
test al, 0x20
jne 0x438bda
movsx edx, byte [esi + 0x98]
add edx, 0xfffffffe
cmp edx, 0x1a
ja case.0x437889.3
jmp dword [edx*4 + 0x4e5700]
mov eax, dword [esi + 0x8c]
mov dword [ebp - 0x50], eax
mov eax, dword [edi + 0x3c]
mov ecx, dword [esi + 0x88]
mov dword [ebp - 0x44], ecx
mov edx, dword [edi + 0x44]
mov dword [ebp - 0x4c], edx
add ecx, eax
cmp edx, ecx
jb 0x438c20
cmp dword [ebp - 0x44], 0
jg 0x438bf4
mov edx, dword [edi + 0x4c]
cmp eax, edx
mov dword [edi + 0x128], 0
ja 0x4378d2
mov eax, edx
mov dword [edi + 0x4c], eax
or byte [edi + 0x179], 0x80
jmp 0x437779
mov eax, dword [edi + 0x7c]
test eax, eax
je 0x4378fb
cmp byte [eax + 0x1e], 0
je 0x4378fb
mov byte [eax + 0x1e], 0
mov dword [ebp - 0x48], 1
jmp 0x437902
mov dword [ebp - 0x48], 0
movzx eax, byte [edi + 0x175]
test al, 0x40
je 0x43791a
cmp byte [edi + 0x15e], 1
je 0x438ce5
push edi
call fcn.004277a0
add esp, 4
test eax, eax
jne 0x438dc0
add dword [edi + 0x98], 1
push 0
push edi
adc dword [edi + 0x9c], 0
and byte [edi + 0x177], 0xfb
call fcn.00428b40
add esp, 8
test eax, eax
jne 0x438d3b
movsx eax, byte [edi + 0x15c]
mov dword [ebp - 0x54], eax
lea eax, [eax - 1]
cmp eax, 7
ja case.default.0x437969
jmp dword [eax*4 + 0x4e5780]
mov ecx, dword [edi + 0x40]
test ecx, ecx
je 0x43797c
mov dword [edi + 0x3c], ecx
jmp 0x437982
mov ecx, dword [edi + 0x38]
mov dword [edi + 0x3c], ecx
mov eax, dword [edi + 0xf8]
movzx edx, byte [edi + 0x170]
lea eax, [ecx + eax - 1]
mov dword [edi + 0x44], eax
jmp 0x437aac
mov eax, dword [edi + 0x18]
test eax, eax
je 0x438d1c
test byte [eax + 0x44], 2
je 0x4379db
mov edx, 0x2c
mov dword [eax + 0x38], edx
mov eax, dword [edi + 0x18]
mov dword [eax + 0x3c], edx
mov edx, dword [edi + 0x64]
test edx, edx
je 0x4379c9
xor eax, eax
mov dword [edx + 4], eax
mov dword [edi + 0x64], eax
mov eax, 0x2c
mov ebx, dword [ebp - 8]
mov esi, dword [ebp - 0x10]
mov edi, dword [ebp - 0xc]
mov esp, ebp
pop ebp
ret
mov eax, 0x2c
push eax
movzx edx, byte [edi + 0x174]
push eax
and edx, 7
push edx
push 0xffffffffffffffff
push edi
call fcn.0042bac0
add esp, 0x14
mov ebx, dword [ebp - 8]
mov esi, dword [ebp - 0x10]
mov edi, dword [ebp - 0xc]
mov esp, ebp
pop ebp
ret
mov ecx, dword [edi + 0x40]
test ecx, ecx
je 0x437a11
add ecx, 4
jmp 0x437a17
mov ecx, dword [edi + 0x38]
add ecx, 4
mov eax, dword [edi + 0xf8]
mov dword [edi + 0x3c], ecx
movzx edx, byte [edi + 0x170]
lea eax, [ecx + eax - 8]
mov dword [edi + 0x44], eax
jmp 0x437aac
mov ecx, dword [edi + 0x40]
test ecx, ecx
je 0x437a3c
mov dword [edi + 0x3c], ecx
jmp 0x437a42
mov ecx, dword [edi + 0x38]
mov dword [edi + 0x3c], ecx
mov eax, dword [edi + 0xf8]
movzx edx, byte [edi + 0x170]
test dl, 4
mov dword [ebp - 0x200], eax
lea eax, [ecx + eax]
je 0x437a75
test byte [edi + 0x172], 0x40
je 0x437a75
test byte [edi + 0x173], 8
je 0x437a75
cmp dword [ebp - 0x54], 1
je 0x437a7a
mov dword [edi + 0x44], eax
jmp 0x437aac
mov eax, dword [ebp - 0x200]
lea eax, [ecx + eax - 2]
mov dword [edi + 0x44], eax
jmp 0x437aac
push 0x472
push str.for_wseq_fmt.c
push 2
push 8
call fcn.0041fa10
add esp, 0x10
movzx edx, byte [edi + 0x170]
mov ecx, dword [edi + 0x3c]
mov eax, dword [edi + 0x44]
test dl, 4
je 0x437acc
test byte [edi + 0x172], 0x40
je 0x437acc
test byte [edi + 0x173], 8
je 0x437acc
cmp byte [edi + 0x15c], 1
je 0x437b19
movsx edx, byte [edi + 0x15e]
cmp edx, 2
jne 0x437af4
movsx edx, byte [edi + 0x15c]
cmp edx, 7
je 0x437b19
cmp edx, 6
je 0x437b19
cmp edx, 8
je 0x437b19
dec eax
mov dword [edi + 0x44], eax
jmp 0x437b19
cmp edx, 1
jne 0x437b19
movsx edx, byte [edi + 0x15c]
cmp edx, 7
je 0x437b13
cmp edx, 6
je 0x437b13
cmp edx, 8
je 0x437b13
dec eax
mov dword [edi + 0x44], eax
add ecx, 5
mov dword [edi + 0x3c], ecx
sub eax, ecx
push eax
push 0x20
push ecx
mov dword [edi + 0x48], ecx
mov dword [edi + 0x4c], ecx
call fcn.004c49d0
add esp, 0xc
mov dword [edi + 0x128], 0
cmp dword [ebp - 0x48], 0
je 0x437779
mov eax, dword [edi + 0x7c]
mov byte [eax + 0x1e], 1
jmp 0x437779
cmp ebx, 2
jge 0x437779
jmp 0x438e31
test byte [edi + 0x170], 4
je 0x437b76
mov eax, dword [edi + 0x7c]
mov byte [eax + 0x1e], 1
mov edx, dword [edi + 0x7c]
mov dword [edx + 0xc], edi
jmp 0x437779
or byte [edi + 0x175], 0x40
jmp 0x437779
mov edx, dword [ebp + 0xc]
movsx edx, byte [edx]
cmp edx, 1
je 0x439311
cmp edx, 2
je 0x4392f2
test byte [esi + 0x9e], 0x20
jne 0x437c48
test byte [edi + 0x170], 2
je 0x437bde
test eax, 0x80
je 0x437bde
push ebx
lea eax, [ebp - 0x380]
push eax
lea edx, [ebp - 0x1d8]
push edx
lea ecx, [ebp + 0x10]
push ecx
lea eax, [ebp + 0xc]
push eax
call fcn.004319e0
add esp, 0x14
test eax, eax
jne 0x439155
mov eax, dword [edi + 0x18]
test eax, eax
je 0x439136
test byte [eax + 0x44], 2
je 0x437c1e
mov edx, 0x69
mov dword [eax + 0x38], edx
mov eax, dword [edi + 0x18]
mov dword [eax + 0x3c], edx
mov edx, dword [edi + 0x64]
test edx, edx
je 0x437c0c
xor eax, eax
mov dword [edx + 4], eax
mov dword [edi + 0x64], eax
mov eax, 0x69
mov ebx, dword [ebp - 8]
mov esi, dword [ebp - 0x10]
mov edi, dword [ebp - 0xc]
mov esp, ebp
pop ebp
ret
mov eax, 0x69
push eax
movzx edx, byte [edi + 0x174]
push eax
and edx, 7
push edx
push 0xffffffffffffffff
push edi
call fcn.0042bac0
add esp, 0x14
mov ebx, dword [ebp - 8]
mov esi, dword [ebp - 0x10]
mov edi, dword [ebp - 0xc]
mov esp, ebp
pop ebp
ret
mov eax, dword [edi + 0x7c]
test eax, eax
je 0x437c60
cmp byte [eax + 0x1e], 0
je 0x437c60
mov byte [eax + 0x1e], 0
mov edx, 1
jmp 0x437c62
xor edx, edx
cmp dword [edi + 0x128], 0
je 0x437c90
movzx eax, byte [edi + 0x179]
test eax, 0x80
mov dword [edi + 0x128], 0
jne 0x437c90
cmp dword [edi + 0x130], 0
jne 0x437f6c
movzx eax, byte [edi + 0x175]
test al, 0x40
mov dword [ebp - 0x1e4], eax
je 0x437cae
cmp byte [edi + 0x15e], 1
je 0x43917e
push edi
mov dword [ebp - 0x1e0], edx
call fcn.004277a0
mov edx, dword [ebp - 0x1e0]
add esp, 4
test eax, eax
jne 0x439281
add dword [edi + 0x98], 1
push 0
push edi
adc dword [edi + 0x9c], 0
and byte [edi + 0x177], 0xfb
mov dword [ebp - 0x1e0], edx
call fcn.00428b40
mov edx, dword [ebp - 0x1e0]
add esp, 8
test eax, eax
jne 0x4391fc
movsx eax, byte [edi + 0x15c]
mov dword [ebp - 0x1e8], eax
lea eax, [eax - 1]
cmp eax, 7
ja case.default.0x437d18
jmp dword [eax*4 + 0x4e57a0]
mov eax, dword [edi + 0x40]
test eax, eax
je 0x437d2b
mov dword [edi + 0x3c], eax
jmp 0x437d31
mov eax, dword [edi + 0x38]
mov dword [edi + 0x3c], eax
mov ecx, dword [edi + 0xf8]
lea ecx, [eax + ecx - 1]
mov dword [ebp - 0x1f4], ecx
mov dword [edi + 0x44], ecx
movzx ecx, byte [edi + 0x170]
mov dword [ebp - 0x1f0], ecx
jmp 0x437ea8
mov eax, dword [edi + 0x18]
test eax, eax
je 0x4391c7
test byte [eax + 0x44], 2
je 0x437d96
mov edx, 0x2c
mov dword [eax + 0x38], edx
mov eax, dword [edi + 0x18]
mov dword [eax + 0x3c], edx
mov edx, dword [edi + 0x64]
test edx, edx
je 0x437d84
xor eax, eax
mov dword [edx + 4], eax
mov dword [edi + 0x64], eax
mov eax, 0x2c
mov ebx, dword [ebp - 8]
mov esi, dword [ebp - 0x10]
mov edi, dword [ebp - 0xc]
mov esp, ebp
pop ebp
ret
mov eax, 0x2c
push eax
movzx edx, byte [edi + 0x174]
push eax
and edx, 7
push edx
push 0xffffffffffffffff
push edi
call fcn.0042bac0
add esp, 0x14
mov ebx, dword [ebp - 8]
mov esi, dword [ebp - 0x10]
mov edi, dword [ebp - 0xc]
mov esp, ebp
pop ebp
ret
mov eax, dword [edi + 0x40]
test eax, eax
je 0x437dcc
add eax, 4
jmp 0x437dd2
mov eax, dword [edi + 0x38]
add eax, 4
mov ecx, dword [edi + 0xf8]
mov dword [edi + 0x3c], eax
lea ecx, [eax + ecx - 8]
mov dword [ebp - 0x1f4], ecx
mov dword [edi + 0x44], ecx
movzx ecx, byte [edi + 0x170]
mov dword [ebp - 0x1f0], ecx
jmp 0x437ea8
mov eax, dword [edi + 0x40]
test eax, eax
je 0x437e06
mov dword [edi + 0x3c], eax
jmp 0x437e0c
mov eax, dword [edi + 0x38]
mov dword [edi + 0x3c], eax
mov ecx, dword [edi + 0xf8]
mov dword [ebp - 0x3d0], ecx
add ecx, eax
mov dword [ebp - 0x1f4], ecx
movzx ecx, byte [edi + 0x170]
test cl, 4
mov dword [ebp - 0x1f0], ecx
je 0x437e4d
test byte [edi + 0x172], 0x40
je 0x437e4d
test byte [edi + 0x173], 8
je 0x437e4d
cmp dword [ebp - 0x1e8], 1
je 0x437e58
mov ecx, dword [ebp - 0x1f4]
mov dword [edi + 0x44], ecx
jmp 0x437ea8
mov ecx, dword [ebp - 0x3d0]
lea ecx, [eax + ecx - 2]
mov dword [ebp - 0x1f4], ecx
mov dword [edi + 0x44], ecx
jmp 0x437ea8
push 0x544
push str.for_wseq_fmt.c
push 2
push 8
mov dword [ebp - 0x1e0], edx
call fcn.0041fa10
mov edx, dword [ebp - 0x1e0]
add esp, 0x10
movzx eax, byte [edi + 0x170]
mov ecx, dword [edi + 0x44]
mov dword [ebp - 0x1f0], eax
mov eax, dword [edi + 0x3c]
mov dword [ebp - 0x1f4], ecx
test byte [ebp - 0x1f0], 4
je 0x437ecc
test byte [edi + 0x172], 0x40
je 0x437ecc
test byte [edi + 0x173], 8
je 0x437ecc
cmp byte [edi + 0x15c], 1
je 0x437f31
movsx ecx, byte [edi + 0x15e]
cmp ecx, 2
jne 0x437f00
movsx ecx, byte [edi + 0x15c]
cmp ecx, 7
je 0x437f31
cmp ecx, 6
je 0x437f31
cmp ecx, 8
je 0x437f31
mov ecx, dword [ebp - 0x1f4]
dec ecx
mov dword [ebp - 0x1f4], ecx
mov dword [edi + 0x44], ecx
jmp 0x437f31
cmp ecx, 1
jne 0x437f31
movsx ecx, byte [edi + 0x15c]
cmp ecx, 7
je 0x437f2b
cmp ecx, 6
je 0x437f2b
cmp ecx, 8
je 0x437f2b
mov ecx, dword [ebp - 0x1f4]
dec ecx
mov dword [ebp - 0x1f4], ecx
mov dword [edi + 0x44], ecx
add eax, 5
mov dword [edi + 0x3c], eax
mov ecx, dword [ebp - 0x1f4]
sub ecx, eax
push ecx
push 0x20
push eax
mov dword [edi + 0x48], eax
mov dword [edi + 0x4c], 0
mov dword [ebp - 0x1e0], edx
call fcn.004c49d0
mov edx, dword [ebp - 0x1e0]
add esp, 0xc
mov dword [edi + 0x130], 1
and byte [edi + 0x179], 0x7f
test edx, edx
je 0x437f77
mov eax, dword [edi + 0x7c]
mov byte [eax + 0x1e], 1
push ebx
mov eax, dword [edi + 0x3c]
lea edx, [ebp + 0x10]
push edx
mov dword [edi + 0x4c], eax
lea ecx, [ebp + 0xc]
push ecx
call fcn.00431690
add esp, 0xc
cmp eax, 1
jne 0x437779
jmp 0x4391e6
cmp ebx, 1
jle 0x4380c8
mov eax, dword [ebp - 0x380]
cmp eax, 7
je 0x437fb9
cmp eax, 8
jne 0x438096
cmp dword [ebp - 0x20], 0
je 0x437fd8
mov eax, dword [ebp - 0x1cc]
dec ebx
add dword [ebp - 0x1d8], eax
mov dword [ebp - 0x20], 0
jmp 0x43838d
cmp dword [ebp - 0x1c], 0
mov eax, dword [ebp - 0x20]
je 0x437fe6
mov eax, 1
mov edx, dword [ebp - 0x37c]
test edx, edx
mov dword [ebp - 0x20], eax
mov dword [ebp - 0x3c], edx
jle 0x43806e
mov eax, edx
mov edx, eax
shr edx, 0x1f
add edx, eax
xor eax, eax
sar edx, 1
test edx, edx
jbe 0x43931f
mov dword [ebp - 0x40], edi
xor ecx, ecx
mov edi, dword [ebp + ecx*8 - 0x1c8]
sub edi, dword [ebp + ecx*8 - 0xd0]
imul edi, dword [ebp + ecx*8 - 0x14c]
add eax, edi
mov edi, dword [ebp + ecx*8 - 0x1c4]
sub edi, dword [ebp + ecx*8 - 0xcc]
imul edi, dword [ebp + ecx*8 - 0x148]
inc ecx
add eax, edi
cmp ecx, edx
jb 0x438010
mov edi, dword [ebp - 0x40]
lea edx, [ecx + ecx + 1]
lea ecx, [edx - 1]
cmp ecx, dword [ebp - 0x3c]
jae 0x438070
mov ecx, dword [ebp + edx*4 - 0x1cc]
sub ecx, dword [ebp + edx*4 - 0xd4]
imul ecx, dword [ebp + edx*4 - 0x150]
add eax, ecx
jmp 0x438070
xor eax, eax
add eax, dword [ebp - 0x378]
lea edx, [ebp - 0x1c8]
mov dword [ebp - 0x1d8], eax
lea eax, [ebp - 0x380]
push eax
push edx
push 0
call fcn.00430cf0
add esp, 0xc
jmp 0x4380b1
mov edx, dword [ebp - 0x20]
test edx, edx
mov eax, dword [ebp - 0x1cc]
je 0x4380a8
mov edx, 0
add dword [ebp - 0x1d8], eax
mov dword [ebp - 0x20], edx
mov dword [edi + 0x128], 0
dec ebx
or byte [edi + 0x179], 0x80
jmp 0x43838d
lea eax, [ebp - 0x380]
push eax
lea edx, [ebp - 0x1d8]
push edx
lea ecx, [ebp + 0x10]
push ecx
lea ebx, [ebp + 0xc]
push ebx
call fcn.00431730
add esp, 0x10
test eax, eax
jne 0x439670
mov ecx, dword [ebp - 0x1d0]
cmp ecx, 2
je 0x4397a7
cmp ecx, 1
je 0x438e40
mov eax, dword [ebp - 0x380]
cmp eax, 7
jl 0x4382fb
cmp eax, 8
jg 0x4382fb
mov eax, dword [ebp - 0x1cc]
test eax, eax
mov dword [ebp - 0x1fc], eax
je 0x438141
mov eax, dword [ebp - 0x1d4]
cdq
mov ebx, dword [ebp - 0x1fc]
idiv ebx
mov ebx, eax
jmp 0x438154
test byte [edi + 0x170], 2
je 0x4382ed
mov ebx, dword [ebp - 0x1d4]
test ebx, ebx
je 0x4382ef
lea eax, [ecx - 0x1c]
cmp eax, 0x10
jbe 0x438172
cmp ecx, 0x34
je 0x438172
mov dword [ebp - 0x1c], 0
jmp 0x43817d
mov eax, 1
mov dword [ebp - 0x1c], eax
mov dword [ebp - 0x20], eax
mov eax, dword [ebp - 0x37c]
test eax, eax
mov dword [ebp - 0x384], eax
jle 0x4382c2
mov edx, eax
shr edx, 0x1f
add edx, eax
sar edx, 1
test edx, edx
jbe 0x439333
mov dword [ebp - 0x3c8], esi
xor ecx, ecx
mov dword [ebp - 0x40], edi
lea esi, [esi]
lea eax, [ecx + ecx*2]
mov esi, dword [ebp + eax*8 - 0x36c]
mov dword [ebp + ecx*8 - 0x14c], esi
mov edi, dword [ebp + eax*8 - 0x370]
mov esi, dword [ebp + eax*8 - 0x364]
mov eax, dword [ebp + eax*8 - 0x360]
mov dword [ebp + ecx*8 - 0xd0], edi
mov dword [ebp + ecx*8 - 0x1c8], edi
mov dword [ebp + ecx*8 - 0xcc], esi
mov dword [ebp + ecx*8 - 0x148], eax
mov dword [ebp + ecx*8 - 0x1c4], esi
inc ecx
cmp ecx, edx
jb 0x4381b0
mov esi, dword [ebp - 0x3c8]
lea edx, [ecx + ecx + 1]
mov edi, dword [ebp - 0x40]
lea eax, [edx - 1]
cmp eax, dword [ebp - 0x384]
jae 0x438243
lea ecx, [edx*8]
lea ecx, [ecx + edx*4]
mov eax, dword [ebp + ecx - 0x37c]
mov ecx, dword [ebp + ecx - 0x378]
mov dword [ebp + edx*4 - 0xd4], eax
mov dword [ebp + edx*4 - 0x150], ecx
mov dword [ebp + edx*4 - 0x1cc], eax
mov eax, dword [ebp - 0x384]
mov edx, eax
shr edx, 0x1f
add edx, eax
xor eax, eax
sar edx, 1
test edx, edx
jbe 0x439329
mov dword [ebp - 0x40], edi
xor ecx, ecx
mov edi, dword [ebp + ecx*8 - 0x1c8]
sub edi, dword [ebp + ecx*8 - 0xd0]
imul edi, dword [ebp + ecx*8 - 0x14c]
add eax, edi
mov edi, dword [ebp + ecx*8 - 0x1c4]
sub edi, dword [ebp + ecx*8 - 0xcc]
imul edi, dword [ebp + ecx*8 - 0x148]
inc ecx
add eax, edi
cmp ecx, edx
jb 0x438261
mov edi, dword [ebp - 0x40]
lea edx, [ecx + ecx + 1]
lea ecx, [edx - 1]
cmp ecx, dword [ebp - 0x384]
jae 0x4382c4
mov ecx, dword [ebp + edx*4 - 0x1cc]
sub ecx, dword [ebp + edx*4 - 0xd4]
imul ecx, dword [ebp + edx*4 - 0x150]
add eax, ecx
jmp 0x4382c4
xor eax, eax
add eax, dword [ebp - 0x378]
lea edx, [ebp - 0x1c8]
mov dword [ebp - 0x1d8], eax
lea eax, [ebp - 0x380]
push eax
push edx
push 0
call fcn.00430cf0
add esp, 0xc
jmp 0x43837c
xor ebx, ebx
mov dword [ebp - 0x18], 1
jmp 0x438393
cmp eax, 6
je 0x438305
cmp eax, 5
jne 0x43835c
movzx ecx, byte [edi + 0x170]
and ecx, 2
mov eax, dword [ebp - 0x1cc]
shr ecx, 1
mov ebx, dword [ebp - 0x1d4]
test eax, eax
mov dword [ebp - 0x1dc], eax
je 0x43833a
mov eax, ebx
cdq
mov ebx, dword [ebp - 0x1dc]
idiv ebx
mov ebx, eax
test ecx, ecx
jne 0x438345
jmp 0x43838d
test ecx, ecx
jne 0x438343
mov ebx, 0
je 0x43838d
test ebx, ebx
jne 0x43837c
mov dword [edi + 0x128], 1
mov dword [ebp - 0x18], 1
jmp 0x438393
lea eax, [ecx - 0x1c]
cmp eax, 0x10
jbe 0x438370
cmp ecx, 0x34
je 0x438370
mov ebx, 1
jmp 0x43837c
mov dword [ebp - 0x20], 1
mov ebx, 2
mov dword [edi + 0x128], 0
or byte [edi + 0x179], 0x80
cmp dword [ebp - 0x18], 0
je 0x4383af
mov eax, dword [esi + 0xc]
test eax, eax
jne 0x4383a6
mov dword [esi + 0xc], 2
jmp 0x437779
inc eax
mov dword [esi + 0xc], eax
jmp 0x437779
mov eax, dword [esi]
and byte [esi + 0x9f], 0xf7
movsx ecx, byte [esi + 0x98]
movzx edx, byte [eax + 0x176]
test edx, 0x80
je 0x4383f4
mov eax, dword [ecx*4 + 0x4e6d60]
test eax, eax
je 0x4383f4
mov edx, dword [ebp - 0x1d0]
movsx eax, byte [eax + edx]
test eax, eax
je 0x4383f4
mov dword [ebp - 0x1d0], eax
movsx ecx, byte [esi + 0x98]
lea eax, [ecx - 0x13]
cmp eax, 0x20
ja case.default.0x438400
jmp dword [eax*4 + 0x4e57c0]
mov edx, dword [esi + 0x88]
test edx, edx
jne 0x438452
movzx eax, byte [esi + 0xa0]
or eax, 2
mov byte [esi + 0xa0], al
mov edx, dword [ebp - 0x1d0]
mov dword [ebp - 0x2c], eax
movsx edx, word [edx*2 + 0x4e6c00]
cmp edx, 0xffffffff
mov dword [esi + 0x88], edx
je 0x43933d
add ecx, 0xffffffd8
cmp ecx, 0x20
jb 0x438941
jmp 0x43897f
add ecx, 0xffffffd8
cmp ecx, 0x20
jb 0x438941
movzx eax, byte [esi + 0xa0]
mov dword [ebp - 0x2c], eax
jmp 0x43897f
mov eax, dword [ebp - 0x1d0]
movsx edx, word [eax*2 + 0x4e6c00]
cmp edx, 0xffffffff
mov dword [esi + 0x88], edx
je 0x439367
add ecx, 0xffffffd8
cmp ecx, 0x20
jb 0x438941
jmp 0x43845e
mov edx, dword [esi + 0x88]
test edx, edx
jne 0x4384e2
movzx eax, byte [esi + 0xa0]
or eax, 2
mov byte [esi + 0xa0], al
mov dword [ebp - 0x2c], eax
mov eax, dword [ebp - 0x1d0]
movsx edx, byte [eax + 0x4e6fcd]
cmp edx, 0xffffffff
mov dword [esi + 0x88], edx
je 0x439391
add ecx, 0xffffffd8
cmp ecx, 0x20
jb 0x438941
jmp 0x43897f
add ecx, 0xffffffd8
cmp ecx, 0x20
jb 0x438941
jmp 0x43845e
mov edx, dword [esi + 0x88]
test edx, edx
jne 0x438534
movzx eax, byte [esi + 0xa0]
add ecx, 0xffffffd8
or eax, 2
mov byte [esi + 0xa0], al
cmp ecx, 0x20
mov dword [ebp - 0x2c], eax
mov eax, dword [ebp - 0x1d0]
movsx edx, byte [eax + 0x4e6fbb]
mov dword [esi + 0x88], edx
jb 0x438941
jmp 0x43897f
add ecx, 0xffffffd8
cmp ecx, 0x20
jb 0x438941
jmp 0x43845e
mov edx, dword [esi + 0x88]
test edx, edx
jne 0x438625
or byte [esi + 0xa1], 4
mov eax, dword [ebp - 0x1d0]
lea edx, [eax - 0x19]
mov dword [ebp - 0x3d4], edx
cmp edx, 0x1b
ja 0x4385d5
movzx eax, byte [esi + 0xa0]
or eax, 2
movsx edx, word [edx*8 + 0x4e6c80]
mov dword [ebp - 0x2c], eax
mov byte [esi + 0xa0], al
movsx eax, word [esi + 0x90]
test eax, eax
mov dword [esi + 0x88], edx
jne 0x4385af
mov eax, dword [ebp - 0x3d4]
movzx eax, word [eax*8 + 0x4e6c84]
mov word [esi + 0x90], ax
mov eax, dword [ebp - 0x3d4]
add ecx, 0xffffffd8
cmp ecx, 0x20
movzx eax, word [eax*8 + 0x4e6c86]
mov word [esi + 0x92], ax
jb 0x438941
jmp 0x43897f
lea edx, [eax - 5]
cmp edx, 0xc
ja 0x438614
movzx eax, byte [esi + 0xa0]
add ecx, 0xffffffd8
or eax, 2
mov byte [esi + 0xa0], al
cmp ecx, 0x20
mov dword [ebp - 0x2c], eax
mov eax, dword [ebp - 0x1d0]
movsx edx, byte [eax + 0x4e6fbb]
mov dword [esi + 0x88], edx
jb 0x438941
jmp 0x43897f
and eax, 0xfffffffe
cmp eax, 0x38
je 0x4393bb
jmp 0x43886f
add ecx, 0xffffffd8
cmp ecx, 0x20
jb 0x438941
jmp 0x43845e
mov edx, dword [esi + 0x88]
test edx, edx
jne 0x4386ab
or byte [esi + 0xa1], 4
mov eax, dword [ebp - 0x1d0]
mov dword [ebp - 0x3cc], eax
lea eax, [eax - 5]
cmp eax, 0xc
ja 0x438683
or byte [esi + 0xa0], 2
mov edx, dword [ebp - 0x1d0]
movsx edx, byte [edx + 0x4e6fbb]
mov dword [esi + 0x88], edx
mov eax, dword [ebp - 0x1d0]
mov dword [ebp - 0x3cc], eax
jmp 0x4386b7
mov eax, dword [ebp - 0x3cc]
and eax, 0xfffffffe
cmp eax, 0x38
jne 0x4386b7
mov edx, dword [ebp - 0x1cc]
mov dword [esi + 0x88], edx
mov eax, dword [ebp - 0x1d0]
mov dword [ebp - 0x3cc], eax
jmp 0x4386b7
mov eax, dword [ebp - 0x1d0]
mov dword [ebp - 0x3cc], eax
cmp dword [ebp - 0x3cc], 0x19
jge case.0x438400.30
add ecx, 0xffffffd8
cmp ecx, 0x20
jb 0x438941
jmp 0x43845e
mov edx, dword [esi + 0x88]
test edx, edx
jne 0x43871c
movzx eax, byte [esi + 0xa0]
add ecx, 0xffffffd8
or eax, 2
mov byte [esi + 0xa0], al
mov edx, dword [ebp - 0x1d0]
mov dword [ebp - 0x2c], eax
movsx eax, word [esi + 0x90]
movsx edx, word [edx*8 + 0x4e6bba]
add edx, eax
mov dword [esi + 0x88], edx
cmp ecx, 0x20
jb 0x438941
jmp 0x43897f
add ecx, 0xffffffd8
cmp ecx, 0x20
jb 0x438941
jmp 0x43845e
add ecx, 0xffffffd8
cmp ecx, 0x20
jb 0x438941
jmp 0x43896f
mov eax, dword [ebp - 0x1d0]
movsx edx, byte [eax + 0x4e6fcd]
cmp edx, 0xffffffff
mov dword [esi + 0x88], edx
je 0x4393d8
add ecx, 0xffffffd8
cmp ecx, 0x20
jb 0x438941
jmp 0x43845e
mov eax, dword [ebp - 0x1d0]
add eax, 0xfffffffb
cmp eax, 0xc
ja 0x43886f
add ecx, 0xffffffd8
mov edx, 2
mov dword [esi + 0x88], 2
cmp ecx, 0x20
jb 0x438941
jmp 0x43845e
mov edx, dword [ebp - 0x1d0]
lea eax, [edx - 5]
cmp eax, 0xc
ja 0x43886f
add ecx, 0xffffffd8
movsx edx, byte [edx + 0x4e6fbb]
cmp ecx, 0x20
mov dword [esi + 0x88], edx
jb 0x438941
jmp 0x43845e
or byte [esi + 0xa1], 4
mov eax, dword [ebp - 0x1d0]
lea edx, [eax - 0x19]
cmp edx, 0x1b
ja 0x43882d
mov eax, edx
add ecx, 0xffffffd8
cmp ecx, 0x20
movsx edx, word [eax*8 + 0x4e6c80]
mov dword [ebp - 0x1f8], edx
mov dword [esi + 0x88], edx
movzx edx, word [eax*8 + 0x4e6c84]
movzx eax, word [eax*8 + 0x4e6c86]
mov word [esi + 0x90], dx
mov word [esi + 0x92], ax
mov edx, dword [ebp - 0x1f8]
jb 0x438941
jmp 0x43845e
lea edx, [eax - 5]
cmp edx, 0xc
ja 0x438853
add ecx, 0xffffffd8
movsx edx, byte [eax + 0x4e6fbb]
cmp ecx, 0x20
mov dword [esi + 0x88], edx
jb 0x438941
jmp 0x43845e
and eax, 0xfffffffe
cmp eax, 0x38
je 0x439402
jmp 0x43886f
mov eax, dword [ebp - 0x1d0]
add eax, 0xffffffe7
cmp eax, 0x1b
jbe 0x4388db
add ecx, 0xffffffd8
mov eax, 0x3d
cmp ecx, 0x20
jb 0x438943
mov edx, dword [edi + 0x18]
test edx, edx
je 0x43941f
test byte [edx + 0x44], 2
je 0x4388b6
mov dword [edx + 0x38], eax
mov edx, dword [edi + 0x18]
mov dword [edx + 0x3c], eax
mov ecx, dword [edi + 0x64]
test ecx, ecx
je 0x4388a9
xor edx, edx
mov dword [ecx + 4], edx
mov dword [edi + 0x64], edx
mov ebx, dword [ebp - 8]
mov esi, dword [ebp - 0x10]
mov edi, dword [ebp - 0xc]
mov esp, ebp
pop ebp
ret
push eax
movzx edx, byte [edi + 0x174]
push eax
and edx, 7
push edx
push 0xffffffffffffffff
push edi
call fcn.0042bac0
add esp, 0x14
mov ebx, dword [ebp - 8]
mov esi, dword [ebp - 0x10]
mov edi, dword [ebp - 0xc]
mov esp, ebp
pop ebp
ret
add ecx, 0xffffffd8
cmp ecx, 0x20
movsx edx, word [eax*8 + 0x4e6c80]
mov dword [ebp - 0x1f8], edx
mov dword [esi + 0x88], edx
movzx edx, word [eax*8 + 0x4e6c84]
movzx eax, word [eax*8 + 0x4e6c86]
mov word [esi + 0x90], dx
mov word [esi + 0x92], ax
mov edx, dword [ebp - 0x1f8]
jb 0x438941
jmp 0x43845e
add ecx, 0xffffffd8
mov edx, dword [ebp - 0x1cc]
cmp ecx, 0x20
mov dword [esi + 0x88], edx
jb 0x438941
jmp 0x43845e
add ecx, 0xffffffd8
cmp ecx, 0x20
jae 0x43896f
xor eax, eax
mov edx, 1
shl edx, cl
test dl, 0x25
je 0x438967
mov ecx, dword [esi + 0x90]
mov edx, dword [esi + 0x88]
cmp ecx, edx
jge 0x438961
mov ecx, edx
mov dword [esi + 0x88], ecx
test eax, eax
jne 0x438880
movzx eax, byte [esi + 0xa0]
mov edx, dword [esi + 0x88]
mov dword [ebp - 0x2c], eax
test byte [ebp - 0x2c], 2
je 0x438a56
test edx, edx
jle 0x4389a1
movsx eax, word [esi + 0x90]
cmp eax, edx
jle 0x4389a1
lea edx, [eax + 1]
mov dword [esi + 0x88], edx
cmp edx, 0x40
ja 0x4389b8
mov dword [ebp - 0x24], 0
lea eax, [ebp - 0x3c4]
mov dword [ebp - 0x28], eax
jmp 0x4389d5
lea eax, [ebp - 0x28]
push eax
push 0
push edx
call fcn.004265d0
add esp, 0xc
test eax, eax
jne 0x4394aa
mov eax, dword [ebp - 0x28]
mov dword [ebp - 0x24], eax
push dword [esi + 0x88]
push 0x20
push eax
call fcn.004c49d0
push dword [ebp - 0x28]
push esi
lea eax, [ebp - 0x1d8]
push eax
call fcn.00431a70
add esp, 0x18
test eax, eax
je 0x438a13
cmp eax, 0x3f
jne 0x439439
test byte [edi + 0x177], 8
jne 0x438a13
mov dword [esi + 0x10], 0x3f
mov edx, dword [esi + 0x88]
test edx, edx
je 0x438a38
mov eax, dword [ebp - 0x28]
cmp byte [eax], 0x20
jne 0x438a56
inc eax
mov dword [ebp - 0x28], eax
mov edx, dword [esi + 0x88]
dec edx
mov dword [esi + 0x88], edx
jne 0x438a1d
movsx eax, word [esi + 0x90]
test eax, eax
jne 0x438a56
mov dword [esi + 0x88], 1
dec dword [ebp - 0x28]
mov edx, dword [esi + 0x88]
mov ecx, dword [edi + 0x3c]
mov dword [ebp - 0x30], ecx
mov eax, dword [edi + 0x44]
mov dword [ebp - 0x34], eax
add ecx, edx
cmp eax, ecx
jb 0x4395b6
movzx eax, byte [esi + 0xa0]
test al, 2
je 0x438af5
cmp dword [esi + 0x88], 0
je 0x438acc
mov edx, dword [ebp - 0x28]
mov ecx, dword [edi + 0x3c]
movzx eax, byte [edx]
mov byte [ecx], al
inc dword [edi + 0x3c]
inc dword [ebp - 0x28]
mov eax, dword [esi + 0x88]
dec eax
je 0x43951b
mov dword [esi + 0x88], eax
mov eax, dword [ebp - 0x28]
movsx eax, byte [eax]
cmp eax, 0x20
je 0x43951b
mov edx, dword [edi + 0x3c]
mov byte [edx], al
inc dword [edi + 0x3c]
inc dword [ebp - 0x28]
mov eax, dword [esi + 0x88]
dec eax
jne 0x438a9e
jmp 0x43951b
and eax, 0xfffffffd
mov byte [esi + 0xa0], al
mov dword [esi + 0x88], 0
cmp dword [ebp - 0x24], 0
je 0x438af0
push dword [ebp - 0x24]
call fcn.00426690
add esp, 4
mov edx, dword [edi + 0x3c]
jmp 0x438b1c
push dword [edi + 0x3c]
push esi
lea eax, [ebp - 0x1d8]
push eax
call fcn.00431a70
add esp, 0xc
test eax, eax
jne 0x439527
mov edx, dword [edi + 0x3c]
add edx, dword [esi + 0x88]
mov dword [edi + 0x3c], edx
mov eax, dword [edi + 0x4c]
cmp edx, eax
ja 0x438b25
mov edx, eax
mov dword [edi + 0x4c], edx
jmp 0x437779
mov edx, dword [edi + 0x18]
test edx, edx
je 0x438b84
test byte [edx + 0x44], 2
je 0x438b5f
mov dword [edx + 0x38], eax
mov edx, dword [edi + 0x18]
mov dword [edx + 0x3c], eax
mov ecx, dword [edi + 0x64]
test ecx, ecx
je 0x438b52
xor edx, edx
mov dword [ecx + 4], edx
mov dword [edi + 0x64], edx
mov ebx, dword [ebp - 8]
mov esi, dword [ebp - 0x10]
mov edi, dword [ebp - 0xc]
mov esp, ebp
pop ebp
ret
push eax
movzx edx, byte [edi + 0x174]
push eax
and edx, 7
push edx
push 0xffffffffffffffff
push edi
call fcn.0042bac0
add esp, 0x14
mov ebx, dword [ebp - 8]
mov esi, dword [ebp - 0x10]
mov edi, dword [ebp - 0xc]
mov esp, ebp
pop ebp
ret
push edi
push eax
push eax
push 1
call fcn.0041d960
add esp, 0x10
mov ebx, dword [ebp - 8]
mov esi, dword [ebp - 0x10]
mov edi, dword [ebp - 0xc]
mov esp, ebp
pop ebp
ret
cmp dword [ebp - 0x20], 0
jne 0x4377e3
cmp ebx, 1
jg 0x4377e3
or eax, 0x40
mov byte [esi + 0x9f], al
jmp 0x4377ec
cmp dword [ebp - 0x20], 0
jne 0x4377d7
cmp ebx, 1
jg 0x4377d7
or eax, 0x20
jmp 0x4377e3
mov eax, dword [esi + 0xc]
test eax, eax
jle 0x438be5
inc eax
mov dword [esi + 0xc], eax
xor eax, eax
mov ebx, dword [ebp - 8]
mov esi, dword [ebp - 0x10]
mov edi, dword [ebp - 0xc]
mov esp, ebp
pop ebp
ret
mov dword [ebp - 0x1ec], ebx
xor ecx, ecx
mov ebx, dword [ebp - 0x50]
movzx edx, byte [ecx + ebx]
inc ecx
mov byte [eax], dl
mov eax, dword [edi + 0x3c]
inc eax
mov dword [edi + 0x3c], eax
cmp ecx, dword [esi + 0x88]
jl 0x438bff
mov ebx, dword [ebp - 0x1ec]
jmp 0x4378bf
mov edx, ecx
sub edx, dword [ebp - 0x4c]
cmp edx, 0x200
mov eax, dword [edi + 0xf8]
jge 0x438c38
mov edx, 0x200
shr eax, 3
cmp edx, eax
jge 0x438c41
mov edx, eax
push edx
push edi
call fcn.00430af0
add esp, 8
test eax, eax
jne 0x438c60
mov edx, dword [esi + 0x88]
mov eax, dword [edi + 0x3c]
mov dword [ebp - 0x44], edx
jmp 0x4378b5
mov eax, dword [edi + 0x18]
test eax, eax
je 0x438cc6
test byte [eax + 0x44], 2
je 0x438c9c
mov edx, 0x42
mov dword [eax + 0x38], edx
mov eax, dword [edi + 0x18]
mov dword [eax + 0x3c], edx
mov edx, dword [edi + 0x64]
test edx, edx
je 0x438c8a
xor eax, eax
mov dword [edx + 4], eax
mov dword [edi + 0x64], eax
mov eax, 0x42
mov ebx, dword [ebp - 8]
mov esi, dword [ebp - 0x10]
mov edi, dword [ebp - 0xc]
mov esp, ebp
pop ebp
ret
mov eax, 0x42
push eax
movzx edx, byte [edi + 0x174]
push eax
and edx, 7
push edx
push 0xffffffffffffffff
push edi
call fcn.0042bac0
add esp, 0x14
mov ebx, dword [ebp - 8]
mov esi, dword [ebp - 0x10]
mov edi, dword [ebp - 0xc]
mov esp, ebp
pop ebp
ret
push edi
mov eax, 0x42
push eax
push eax
push 1
call fcn.0041d960
add esp, 0x10
mov ebx, dword [ebp - 8]
mov esi, dword [ebp - 0x10]
mov edi, dword [ebp - 0xc]
mov esp, ebp
pop ebp
ret
mov ecx, dword [edi + 0x38]
movsx edx, byte [ecx + 5]
cmp edx, 0x20
je 0x438d0f
cmp edx, 0x2b
jne 0x438d01
mov byte [ecx + 5], 0
movzx eax, byte [edi + 0x175]
and eax, 0xffffffbf
mov byte [edi + 0x175], al
jmp 0x43791a
mov byte [ecx + 5], 0x24
movzx eax, byte [edi + 0x175]
jmp 0x438d01
push edi
mov eax, 0x2c
push eax
push eax
push 1
call fcn.0041d960
add esp, 0x10
mov ebx, dword [ebp - 8]
mov esi, dword [ebp - 0x10]
mov edi, dword [ebp - 0xc]
mov esp, ebp
pop ebp
ret
mov eax, dword [edi + 0x18]
test eax, eax
je 0x438da1
test byte [eax + 0x44], 2
je 0x438d77
mov edx, 0x26
mov dword [eax + 0x38], edx
mov eax, dword [edi + 0x18]
mov dword [eax + 0x3c], edx
mov edx, dword [edi + 0x64]
test edx, edx
je 0x438d65
xor eax, eax
mov dword [edx + 4], eax
mov dword [edi + 0x64], eax
mov eax, 0x26
mov ebx, dword [ebp - 8]
mov esi, dword [ebp - 0x10]
mov edi, dword [ebp - 0xc]
mov esp, ebp
pop ebp
ret
mov eax, 0x26
push eax
movzx edx, byte [edi + 0x174]
push eax
and edx, 7
push edx
push 0xffffffffffffffff
push edi
call fcn.0042bac0
add esp, 0x14
mov ebx, dword [ebp - 8]
mov esi, dword [ebp - 0x10]
mov edi, dword [ebp - 0xc]
mov esp, ebp
pop ebp
ret
push edi
mov eax, 0x26
push eax
push eax
push 1
call fcn.0041d960
add esp, 0x10
mov ebx, dword [ebp - 8]
mov esi, dword [ebp - 0x10]
mov edi, dword [ebp - 0xc]
mov esp, ebp
pop ebp
ret
mov edx, dword [edi + 0x18]
test edx, edx
je 0x438e17
test byte [edx + 0x44], 2
je 0x438df2
mov dword [edx + 0x38], eax
mov edx, dword [edi + 0x18]
mov dword [edx + 0x3c], eax
mov ecx, dword [edi + 0x64]
test ecx, ecx
je 0x438de5
xor edx, edx
mov dword [ecx + 4], edx
mov dword [edi + 0x64], edx
mov ebx, dword [ebp - 8]
mov esi, dword [ebp - 0x10]
mov edi, dword [ebp - 0xc]
mov esp, ebp
pop ebp
ret
push eax
movzx edx, byte [edi + 0x174]
push eax
and edx, 7
push edx
push 0xffffffffffffffff
push edi
call fcn.0042bac0
add esp, 0x14
mov ebx, dword [ebp - 8]
mov esi, dword [ebp - 0x10]
mov edi, dword [ebp - 0xc]
mov esp, ebp
pop ebp
ret
push edi
push eax
push eax
push 1
call fcn.0041d960
add esp, 0x10
mov ebx, dword [ebp - 8]
mov esi, dword [ebp - 0x10]
mov edi, dword [ebp - 0xc]
mov esp, ebp
pop ebp
ret
mov eax, dword [ebp + 0xc]
movsx eax, byte [eax]
cmp eax, 1
jne 0x439072
mov eax, dword [edi + 0x7c]
test eax, eax
je 0x438e51
cmp byte [eax + 0x1e], 0
jne 0x438f59
cmp dword [edi + 0x134], 0
je 0x438e68
mov dword [edi + 0x134], 0
xor edx, edx
jmp 0x438e6d
mov edx, 1
cmp dword [edi + 0x128], 0
jne 0x438e85
cmp dword [ebp - 0x18], 0
je 0x438eb5
cmp dword [edi + 0x130], 0
je 0x438eb5
movzx eax, byte [edi + 0x179]
test eax, 0x80
mov dword [edi + 0x128], 0
je 0x438ea8
and eax, 0x7f
mov byte [edi + 0x179], al
jmp 0x438ebd
cmp dword [edi + 0x130], 0
jne 0x438f59
test edx, edx
je 0x438f59
movzx eax, byte [edi + 0x175]
test al, 0x40
je 0x438ed5
cmp byte [edi + 0x15e], 1
je 0x4390ff
push edi
call fcn.004277a0
add esp, 4
test eax, eax
je 0x438f3d
mov edx, dword [edi + 0x18]
test edx, edx
je 0x4390b1
test byte [edx + 0x44], 2
je 0x438f18
mov dword [edx + 0x38], eax
mov edx, dword [edi + 0x18]
mov dword [edx + 0x3c], eax
mov ecx, dword [edi + 0x64]
test ecx, ecx
je 0x438f0b
xor edx, edx
mov dword [ecx + 4], edx
mov dword [edi + 0x64], edx
mov ebx, dword [ebp - 8]
mov esi, dword [ebp - 0x10]
mov edi, dword [ebp - 0xc]
mov esp, ebp
pop ebp
ret
push eax
movzx edx, byte [edi + 0x174]
push eax
and edx, 7
push edx
push 0xffffffffffffffff
push edi
call fcn.0042bac0
add esp, 0x14
mov ebx, dword [ebp - 8]
mov esi, dword [ebp - 0x10]
mov edi, dword [ebp - 0xc]
mov esp, ebp
pop ebp
ret
add dword [edi + 0x98], 1
adc dword [edi + 0x9c], 0
and byte [edi + 0x177], 0xfb
and byte [edi + 0x179], 0x7f
movzx eax, byte [esi + 0x9f]
test al, 2
je 0x438fd7
push dword [esi + 4]
and eax, 0xfffffffd
mov byte [esi + 0x9f], al
call fcn.00426690
add esp, 4
test eax, eax
je 0x438fd7
mov edx, dword [edi + 0x18]
test edx, edx
je 0x4390cb
test byte [edx + 0x44], 2
je 0x438fb2
mov dword [edx + 0x38], eax
mov edx, dword [edi + 0x18]
mov dword [edx + 0x3c], eax
mov ecx, dword [edi + 0x64]
test ecx, ecx
je 0x438fa5
xor edx, edx
mov dword [ecx + 4], edx
mov dword [edi + 0x64], edx
mov ebx, dword [ebp - 8]
mov esi, dword [ebp - 0x10]
mov edi, dword [ebp - 0xc]
mov esp, ebp
pop ebp
ret
push eax
movzx edx, byte [edi + 0x174]
push eax
and edx, 7
push edx
push 0xffffffffffffffff
push edi
call fcn.0042bac0
add esp, 0x14
mov ebx, dword [ebp - 8]
mov esi, dword [ebp - 0x10]
mov edi, dword [ebp - 0xc]
mov esp, ebp
pop ebp
ret
mov edx, dword [esi + 0x10]
test edx, edx
je 0x43903f
mov eax, dword [edi + 0x18]
test eax, eax
je 0x4390e5
test byte [eax + 0x44], 2
je 0x43901a
mov dword [eax + 0x38], edx
mov edx, dword [edi + 0x18]
mov eax, dword [esi + 0x10]
mov dword [edx + 0x3c], eax
mov edx, dword [edi + 0x64]
test edx, edx
je 0x43900a
xor eax, eax
mov dword [edx + 4], eax
mov dword [edi + 0x64], eax
mov eax, dword [esi + 0x10]
mov ebx, dword [ebp - 8]
mov esi, dword [ebp - 0x10]
mov edi, dword [ebp - 0xc]
mov esp, ebp
pop ebp
ret
push edx
movzx eax, byte [edi + 0x174]
push edx
and eax, 7
push eax
push 0xffffffffffffffff
push edi
call fcn.0042bac0
add esp, 0x14
mov ebx, dword [ebp - 8]
mov esi, dword [ebp - 0x10]
mov edi, dword [ebp - 0xc]
mov esp, ebp
pop ebp
ret
push dword [edi + 0x100]
and byte [edi + 0x174], 0xdc
and byte [edi + 0x176], 0xf7
call fcn.004233a0
add esp, 4
mov edx, dword [ebp - 0x14]
mov ebx, dword [ebp - 8]
mov esi, dword [ebp - 0x10]
mov edi, dword [ebp - 0xc]
mov dword [edx + 4], 0
mov esp, ebp
pop ebp
ret
cmp eax, 2
jne 0x43908d
xor eax, eax
mov dword [esi + 0xc], 2
mov ebx, dword [ebp - 8]
mov esi, dword [ebp - 0x10]
mov edi, dword [ebp - 0xc]
mov esp, ebp
pop ebp
ret
push ebx
lea eax, [ebp + 0x10]
push eax
lea edx, [ebp + 0xc]
push edx
call fcn.00431690
add esp, 0xc
cmp eax, 2
je 0x439077
cmp eax, 1
jne 0x437779
jmp 0x438e40
push edi
push eax
push eax
push 1
call fcn.0041d960
add esp, 0x10
mov ebx, dword [ebp - 8]
mov esi, dword [ebp - 0x10]
mov edi, dword [ebp - 0xc]
mov esp, ebp
pop ebp
ret
push edi
push eax
push eax
push 1
call fcn.0041d960
add esp, 0x10
mov ebx, dword [ebp - 8]
mov esi, dword [ebp - 0x10]
mov edi, dword [ebp - 0xc]
mov esp, ebp
pop ebp
ret
push edi
push edx
push edx
push 1
call fcn.0041d960
add esp, 0x10
mov ebx, dword [ebp - 8]
mov esi, dword [ebp - 0x10]
mov edi, dword [ebp - 0xc]
mov esp, ebp
pop ebp
ret
mov ecx, dword [edi + 0x38]
movsx edx, byte [ecx + 5]
cmp edx, 0x20
je 0x439129
cmp edx, 0x2b
jne 0x43911b
mov byte [ecx + 5], 0
movzx eax, byte [edi + 0x175]
and eax, 0xffffffbf
mov byte [edi + 0x175], al
jmp 0x438ed5
mov byte [ecx + 5], 0x24
movzx eax, byte [edi + 0x175]
jmp 0x43911b
push edi
mov eax, 0x69
push eax
push eax
push 1
call fcn.0041d960
add esp, 0x10
mov ebx, dword [ebp - 8]
mov esi, dword [ebp - 0x10]
mov edi, dword [ebp - 0xc]
mov esp, ebp
pop ebp
ret
mov eax, dword [ebp + 0xc]
cmp byte [eax], 2
jne 0x438e40
cmp ebx, 2
jge 0x438e40
xor eax, eax
mov dword [esi + 0xc], 2
mov ebx, dword [ebp - 8]
mov esi, dword [ebp - 0x10]
mov edi, dword [ebp - 0xc]
leave
ret
mov ecx, dword [edi + 0x38]
movsx eax, byte [ecx + 5]
cmp eax, 0x20
je 0x4391b4
cmp eax, 0x2b
jne 0x4391a0
mov byte [ecx + 5], 0
movzx eax, byte [edi + 0x175]
mov dword [ebp - 0x1e4], eax
mov eax, dword [ebp - 0x1e4]
and eax, 0xffffffbf
mov byte [edi + 0x175], al
jmp 0x437cae
mov byte [ecx + 5], 0x24
movzx eax, byte [edi + 0x175]
mov dword [ebp - 0x1e4], eax
jmp 0x4391a0
push edi
mov eax, 0x2c
push eax
push eax
push 1
call fcn.0041d960
add esp, 0x10
mov ebx, dword [ebp - 8]
mov esi, dword [ebp - 0x10]
mov edi, dword [ebp - 0xc]
mov esp, ebp
pop ebp
ret
and byte [edi + 0x179], 0x7f
mov dword [edi + 0x134], 1
jmp 0x438e40
mov eax, dword [edi + 0x18]
test eax, eax
je 0x439262
test byte [eax + 0x44], 2
je 0x439238
mov edx, 0x26
mov dword [eax + 0x38], edx
mov eax, dword [edi + 0x18]
mov dword [eax + 0x3c], edx
mov edx, dword [edi + 0x64]
test edx, edx
je 0x439226
xor eax, eax
mov dword [edx + 4], eax
mov dword [edi + 0x64], eax
mov eax, 0x26
mov ebx, dword [ebp - 8]
mov esi, dword [ebp - 0x10]
mov edi, dword [ebp - 0xc]
mov esp, ebp
pop ebp
ret
mov eax, 0x26
push eax
movzx edx, byte [edi + 0x174]
push eax
and edx, 7
push edx
push 0xffffffffffffffff
push edi
call fcn.0042bac0
add esp, 0x14
mov ebx, dword [ebp - 8]
mov esi, dword [ebp - 0x10]
mov edi, dword [ebp - 0xc]
mov esp, ebp
pop ebp
ret
push edi
mov eax, 0x26
push eax
push eax
push 1
call fcn.0041d960
add esp, 0x10
mov ebx, dword [ebp - 8]
mov esi, dword [ebp - 0x10]
mov edi, dword [ebp - 0xc]
mov esp, ebp
pop ebp
ret
mov edx, dword [edi + 0x18]
test edx, edx
je 0x4392d8
test byte [edx + 0x44], 2
je 0x4392b3
mov dword [edx + 0x38], eax
mov edx, dword [edi + 0x18]
mov dword [edx + 0x3c], eax
mov ecx, dword [edi + 0x64]
test ecx, ecx
je 0x4392a6
xor edx, edx
mov dword [ecx + 4], edx
mov dword [edi + 0x64], edx
mov ebx, dword [ebp - 8]
mov esi, dword [ebp - 0x10]
mov edi, dword [ebp - 0xc]
mov esp, ebp
pop ebp
ret
push eax
movzx edx, byte [edi + 0x174]
push eax
and edx, 7
push edx
push 0xffffffffffffffff
push edi
call fcn.0042bac0
add esp, 0x14
mov ebx, dword [ebp - 8]
mov esi, dword [ebp - 0x10]
mov edi, dword [ebp - 0xc]
mov esp, ebp
pop ebp
ret
push edi
push eax
push eax
push 1
call fcn.0041d960
add esp, 0x10
mov ebx, dword [ebp - 8]
mov esi, dword [ebp - 0x10]
mov edi, dword [ebp - 0xc]
mov esp, ebp
pop ebp
ret
cmp ebx, 2
jge 0x437c48
xor eax, eax
mov dword [esi + 0xc], 2
mov ebx, dword [ebp - 8]
mov esi, dword [ebp - 0x10]
mov edi, dword [ebp - 0xc]
mov esp, ebp
pop ebp
ret
cmp ebx, 2
jl 0x438e40
jmp 0x437c48
mov edx, 1
jmp 0x43804c
mov edx, 1
jmp 0x43829d
mov edx, 1
jmp 0x43820b
mov edx, dword [ebp - 0x1cc]
add ecx, 0xffffffd8
shl edx, 3
cmp edx, 0x11
jge 0x439353
mov edx, 0x11
mov dword [esi + 0x88], edx
cmp ecx, 0x20
jb 0x438941
jmp 0x43897f
mov edx, dword [ebp - 0x1cc]
add ecx, 0xffffffd8
shl edx, 3
cmp edx, 0x11
jge 0x43937d
mov edx, 0x11
mov dword [esi + 0x88], edx
cmp ecx, 0x20
jb 0x438941
jmp 0x43845e
mov eax, dword [ebp - 0x1cc]
add ecx, 0xffffffd8
lea edx, [eax + eax*2]
cmp edx, 7
jge 0x4393a7
mov edx, 7
mov dword [esi + 0x88], edx
cmp ecx, 0x20
jb 0x438941
jmp 0x43897f
add ecx, 0xffffffd8
mov edx, dword [ebp - 0x1cc]
cmp ecx, 0x20
mov dword [esi + 0x88], edx
jb 0x438941
jmp 0x43845e
mov eax, dword [ebp - 0x1cc]
add ecx, 0xffffffd8
lea edx, [eax + eax*2]
cmp edx, 7
jge 0x4393ee
mov edx, 7
mov dword [esi + 0x88], edx
cmp ecx, 0x20
jb 0x438941
jmp 0x43845e
add ecx, 0xffffffd8
mov edx, dword [ebp - 0x1cc]
cmp ecx, 0x20
mov dword [esi + 0x88], edx
jb 0x438941
jmp 0x43845e
push edi
push eax
push eax
push 1
call fcn.0041d960
add esp, 0x10
mov ebx, dword [ebp - 8]
mov esi, dword [ebp - 0x10]
mov edi, dword [ebp - 0xc]
mov esp, ebp
pop ebp
ret
mov edx, dword [edi + 0x18]
test edx, edx
je 0x439490
test byte [edx + 0x44], 2
je 0x43946b
mov dword [edx + 0x38], eax
mov edx, dword [edi + 0x18]
mov dword [edx + 0x3c], eax
mov ecx, dword [edi + 0x64]
test ecx, ecx
je 0x43945e
xor edx, edx
mov dword [ecx + 4], edx
mov dword [edi + 0x64], edx
mov ebx, dword [ebp - 8]
mov esi, dword [ebp - 0x10]
mov edi, dword [ebp - 0xc]
mov esp, ebp
pop ebp
ret
push eax
movzx edx, byte [edi + 0x174]
push eax
and edx, 7
push edx
push 0xffffffffffffffff
push edi
call fcn.0042bac0
add esp, 0x14
mov ebx, dword [ebp - 8]
mov esi, dword [ebp - 0x10]
mov edi, dword [ebp - 0xc]
mov esp, ebp
pop ebp
ret
push edi
push eax
push eax
push 1
call fcn.0041d960
add esp, 0x10
mov ebx, dword [ebp - 8]
mov esi, dword [ebp - 0x10]
mov edi, dword [ebp - 0xc]
mov esp, ebp
pop ebp
ret
mov edx, dword [edi + 0x18]
test edx, edx
je 0x439501
test byte [edx + 0x44], 2
je 0x4394dc
mov dword [edx + 0x38], eax
mov edx, dword [edi + 0x18]
mov dword [edx + 0x3c], eax
mov ecx, dword [edi + 0x64]
test ecx, ecx
je 0x4394cf
xor edx, edx
mov dword [ecx + 4], edx
mov dword [edi + 0x64], edx
mov ebx, dword [ebp - 8]
mov esi, dword [ebp - 0x10]
mov edi, dword [ebp - 0xc]
mov esp, ebp
pop ebp
ret
push eax
movzx edx, byte [edi + 0x174]
push eax
and edx, 7
push edx
push 0xffffffffffffffff
push edi
call fcn.0042bac0
add esp, 0x14
mov ebx, dword [ebp - 8]
mov esi, dword [ebp - 0x10]
mov edi, dword [ebp - 0xc]
mov esp, ebp
pop ebp
ret
push edi
push eax
push eax
push 1
call fcn.0041d960
add esp, 0x10
mov ebx, dword [ebp - 8]
mov esi, dword [ebp - 0x10]
mov edi, dword [ebp - 0xc]
mov esp, ebp
pop ebp
ret
movzx eax, byte [esi + 0xa0]
jmp 0x438acc
cmp eax, 0x3f
jne 0x439545
test byte [edi + 0x177], 8
jne 0x438b10
mov dword [esi + 0x10], 0x3f
jmp 0x438b10
mov edx, dword [edi + 0x18]
test edx, edx
je 0x43959c
test byte [edx + 0x44], 2
je 0x439577
mov dword [edx + 0x38], eax
mov edx, dword [edi + 0x18]
mov dword [edx + 0x3c], eax
mov ecx, dword [edi + 0x64]
test ecx, ecx
je 0x43956a
xor edx, edx
mov dword [ecx + 4], edx
mov dword [edi + 0x64], edx
mov ebx, dword [ebp - 8]
mov esi, dword [ebp - 0x10]
mov edi, dword [ebp - 0xc]
mov esp, ebp
pop ebp
ret
push eax
movzx edx, byte [edi + 0x174]
push eax
and edx, 7
push edx
push 0xffffffffffffffff
push edi
call fcn.0042bac0
add esp, 0x14
mov ebx, dword [ebp - 8]
mov esi, dword [ebp - 0x10]
mov edi, dword [ebp - 0xc]
mov esp, ebp
pop ebp
ret
push edi
push eax
push eax
push 1
call fcn.0041d960
add esp, 0x10
mov ebx, dword [ebp - 8]
mov esi, dword [ebp - 0x10]
mov edi, dword [ebp - 0xc]
mov esp, ebp
pop ebp
ret
mov eax, dword [ebp - 0x30]
sub eax, dword [ebp - 0x34]
add eax, edx
cmp eax, 0x200
mov edx, dword [edi + 0xf8]
jge 0x4395d0
mov eax, 0x200
shr edx, 3
cmp eax, edx
jge 0x4395d9
mov eax, edx
push eax
push edi
call fcn.00430af0
add esp, 8
test eax, eax
je 0x438a6c
mov eax, dword [edi + 0x18]
test eax, eax
je 0x439651
test byte [eax + 0x44], 2
je 0x439627
mov edx, 0x42
mov dword [eax + 0x38], edx
mov eax, dword [edi + 0x18]
mov dword [eax + 0x3c], edx
mov edx, dword [edi + 0x64]
test edx, edx
je 0x439615
xor eax, eax
mov dword [edx + 4], eax
mov dword [edi + 0x64], eax
mov eax, 0x42
mov ebx, dword [ebp - 8]
mov esi, dword [ebp - 0x10]
mov edi, dword [ebp - 0xc]
mov esp, ebp
pop ebp
ret
mov eax, 0x42
push eax
movzx edx, byte [edi + 0x174]
push eax
and edx, 7
push edx
push 0xffffffffffffffff
push edi
call fcn.0042bac0
add esp, 0x14
mov ebx, dword [ebp - 8]
mov esi, dword [ebp - 0x10]
mov edi, dword [ebp - 0xc]
mov esp, ebp
pop ebp
ret
push edi
mov eax, 0x42
push eax
push eax
push 1
call fcn.0041d960
add esp, 0x10
mov ebx, dword [ebp - 8]
mov esi, dword [ebp - 0x10]
mov edi, dword [ebp - 0xc]
mov esp, ebp
pop ebp
ret
mov edx, dword [edi + 0x18]
test edx, edx
je 0x4396c7
test byte [edx + 0x44], 2
je 0x4396a2
mov dword [edx + 0x38], eax
mov edx, dword [edi + 0x18]
mov dword [edx + 0x3c], eax
mov ecx, dword [edi + 0x64]
test ecx, ecx
je 0x439695
xor edx, edx
mov dword [ecx + 4], edx
mov dword [edi + 0x64], edx
mov ebx, dword [ebp - 8]
mov esi, dword [ebp - 0x10]
mov edi, dword [ebp - 0xc]
mov esp, ebp
pop ebp
ret
push eax
movzx edx, byte [edi + 0x174]
push eax
and edx, 7
push edx
push 0xffffffffffffffff
push edi
call fcn.0042bac0
add esp, 0x14
mov ebx, dword [ebp - 8]
mov esi, dword [ebp - 0x10]
mov edi, dword [ebp - 0xc]
mov esp, ebp
pop ebp
ret
push edi
push eax
push eax
push 1
call fcn.0041d960
add esp, 0x10
mov ebx, dword [ebp - 8]
mov esi, dword [ebp - 0x10]
mov edi, dword [ebp - 0xc]
mov esp, ebp
pop ebp
ret
mov edx, dword [edi + 0x18]
test edx, edx
je 0x439738
test byte [edx + 0x44], 2
je 0x439713
mov dword [edx + 0x38], eax
mov edx, dword [edi + 0x18]
mov dword [edx + 0x3c], eax
mov ecx, dword [edi + 0x64]
test ecx, ecx
je 0x439706
xor edx, edx
mov dword [ecx + 4], edx
mov dword [edi + 0x64], edx
mov ebx, dword [ebp - 8]
mov esi, dword [ebp - 0x10]
mov edi, dword [ebp - 0xc]
mov esp, ebp
pop ebp
ret
push eax
movzx edx, byte [edi + 0x174]
push eax
and edx, 7
push edx
push 0xffffffffffffffff
push edi
call fcn.0042bac0
add esp, 0x14
mov ebx, dword [ebp - 8]
mov esi, dword [ebp - 0x10]
mov edi, dword [ebp - 0xc]
mov esp, ebp
pop ebp
ret
push edi
push eax
push eax
push 1
call fcn.0041d960
add esp, 0x10
mov ebx, dword [ebp - 8]
mov esi, dword [ebp - 0x10]
mov edi, dword [ebp - 0xc]
mov esp, ebp
pop ebp
ret
cmp dword [ebp - 0x20], 0
jne 0x437849
cmp ebx, 1
jg 0x437849
or eax, 0x40
mov byte [esi + 0x9f], al
jmp 0x437852
cmp dword [ebp - 0x20], 0
jne 0x437836
cmp ebx, 1
jg 0x437836
movzx eax, byte [esi + 0x9f]
or eax, 0x20
jmp 0x437849
xor eax, eax
mov dword [esi + 0xc], edx
mov ebx, dword [ebp - 8]
mov esi, dword [ebp - 0x10]
mov edi, dword [ebp - 0xc]
mov esp, ebp
pop ebp
ret
mov edx, dword [esi + 0xc]
test edx, edx
mov ebx, dword [ebp - 8]
mov edi, dword [ebp - 0xc]
lea ecx, [edx + 1]
jne 0x4397bc
mov ecx, 2
xor eax, eax
mov dword [esi + 0xc], ecx
mov esi, dword [ebp - 0x10]
mov esp, ebp
pop ebp
ret
xor eax, eax
mov edi, dword [ebp - 0xc]
mov esp, ebp
pop ebp
ret