Function at 0x10029d40
Capabilities:
Hash data using sha1

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
push 0xffffffffffffffff
push 0x1004b36b
mov eax, dword fs:[0]
push eax
sub esp, 0x288
mov eax, dword [0x100661b0]
xor eax, esp
mov dword [esp + 0x280], eax
push ebx
push esi
push edi
mov eax, dword [0x100661b0]
xor eax, esp
push eax
lea eax, [esp + 0x298]
mov dword fs:[0], eax
mov eax, dword [ebp + 0xc]
mov esi, dword [ebp + 8]
push 0x48
mov dword [esp + 0x28], eax
xor ebx, ebx
lea eax, [esp + 0x30]
push ebx
push eax
mov dword [esp + 0x2c], ecx
mov dword [esp + 0x34], edx
call fcn.10037fe0
mov cl, byte [esi]
shr cl, 1
movzx ax, cl
mov word [esp + 0x24c], ax
mov edx, dword [esp + 0x24c]
add edx, 0xffffffff
add esp, 0xc
cmp dx, 0x11
ja 0x1002a176
movzx eax, ax
cmp eax, ebx
jle 0x10029dec
add esi, 2
xor ecx, ecx
mov ch, byte [esi - 1]
sub eax, 1
add esi, 2
cmp eax, ebx
mov cl, byte [esi - 2]
mov word [esp + eax*2 + 0x242], cx
jg 0x10029dd2
mov eax, dword [0x10059120]
mov edx, dword [str.babylon_translator]
mov ecx, dword [0x10059124]
mov dword [esp + 0x21c], eax
mov ax, word [0x1005912c]
mov dword [esp + 0x218], edx
mov edx, dword [0x10059128]
mov dword [esp + 0x220], ecx
mov cl, byte [0x1005912e]
mov word [esp + 0x228], ax
lea eax, [esp + 0x218]
mov dword [esp + 0x74], 0x67452301
mov dword [esp + 0x78], 0xefcdab89
mov dword [esp + 0x7c], 0x98badcfe
mov dword [esp + 0x80], 0x10325476
mov dword [esp + 0x84], 0xc3d2e1f0
mov dword [esp + 0x8c], ebx
mov dword [esp + 0x88], ebx
mov dword [esp + 0x224], edx
mov byte [esp + 0x22a], cl
lea esi, [eax + 1]
mov cl, byte [eax]
add eax, 1
cmp cl, bl
jne 0x10029e80
lea edx, [esp + 0x218]
sub eax, esi
push edx
lea esi, [esp + 0x78]
call fcn.1002cc30
add esp, 4
lea edi, [esp + 0x34]
mov ecx, esi
call fcn.1002ccd0
mov eax, dword [esp + 0x24]
push eax
mov eax, dword [ebp + 0x10]
mov dword [esp + 0x30], 6
mov dword [esp + 0x78], 0x67452301
mov dword [esp + 0x7c], 0xefcdab89
mov dword [esp + 0x80], 0x98badcfe
mov dword [esp + 0x84], 0x10325476
mov dword [esp + 0x88], 0xc3d2e1f0
mov dword [esp + 0x90], ebx
mov dword [esp + 0x8c], ebx
call fcn.1002cc30
add esp, 4
lea edi, [esp + 0x48]
mov ecx, esi
call fcn.1002ccd0
lea esi, [esp + 0x14]
mov dword [esp + 0x14], vtable.CEllipticCurveContext.0
mov dword [esp + 0x18], ebx
mov dword [esp + 0x1c], ebx
call fcn.1002a6a0
mov dword [esp + 0x2a0], ebx
push ebx
call fcn.1003719e
add esp, 4
mov dword [esp + 0x70], eax
mov dword [esp + 0x2c], 0x11
mov word [esp + 0x268], 0xf
mov esi, 1
lea ecx, [esp + 0x2c]
push ecx
call fcn.10028840
mov word [esp + esi*2 + 0x26c], ax
add esi, 1
add esp, 4
cmp esi, 0x10
jb 0x10029f50
lea edx, [esp + 0x268]
push edx
lea eax, [esp + 0x21c]
push eax
lea edx, [esp + 0x248]
lea ecx, [esp + 0x1c]
call fcn.1002a3e0
xor esi, esi
mov dword [esp + 0x10], 0x20
sub dword [esp + 0x10], 1
cmp word [esp + 0x218], bx
jne 0x10029fae
mov word [esp + 0x21a], bx
mov cl, byte [esp + 0x21a]
mov edx, dword [esp + 0x20]
mov byte [edx + esi], cl
mov edi, 8
lea edx, [esp + 0x218]
add esi, 1
call fcn.1002b560
cmp dword [esp + 0x10], ebx
jne 0x10029f97
xor eax, eax
mov dword [esp + 0x208], eax
mov dword [esp + 0x20c], eax
mov dword [esp + 0x210], eax
mov dword [esp + 0x214], eax
lea eax, [esp + 0x268]
push eax
lea ebx, [esp + 0x21c]
mov dword [esp + 0x14], esi
call fcn.100298d0
add esp, 4
push 0x130
lea ecx, [esp + 0xd8]
push 0
push ecx
call fcn.10037fe0
add esp, 0xc
lea edx, [esp + 0x164]
push edx
lea eax, [esp + 0xd8]
push eax
mov eax, ebx
call fcn.1002d770
mov ebx, dword [ebp + 0x10]
mov ecx, dword [esp + 0x28]
mov edx, dword [esp + 0x2c]
push ebx
add esi, ecx
push edx
push esi
call fcn.10039170
add esp, 0x14
xor al, al
cmp ebx, 0x10
jae 0x1002a062
mov al, 0x11
sub al, bl
jmp 0x1002a069
test bl, 1
je 0x1002a069
mov al, 2
movzx edi, al
push edi
lea eax, [esi + ebx]
push edi
push eax
call fcn.10037fe0
mov edx, dword [esp + 0x218]
mov eax, dword [esp + 0x21c]
mov ecx, dword [esp + 0x214]
mov dword [esp + 0x204], edx
add esp, 0xc
lea edx, [esp + 0xd4]
mov dword [esp + 0x1fc], eax
mov dword [esp + 0x1f4], ecx
mov ecx, dword [esp + 0x214]
push edx
lea eax, [esp + 0x1f8]
push eax
add ebx, edi
mov dword [esp + 0x208], ecx
call fcn.1002d830
mov cl, 0xff
add esp, 8
xor edi, edi
xor eax, eax
cmp byte [esp + 0x208], cl
jne 0x1002a0f4
jmp 0x1002a0e0
mov byte [esp + eax + 0x208], 0
add eax, 1
cmp byte [esp + eax + 0x208], cl
je 0x1002a0e0
add byte [esp + eax + 0x208], 1
lea eax, [esp + eax + 0x208]
lea ecx, [esp + 0xd4]
push ebx
push ecx
mov eax, esi
call fcn.1002b0e0
mov edx, dword [esp + 0x18]
mov eax, dword [esp + 0x30]
push 0x130
lea ecx, [esp + 0xe0]
add edx, ebx
push edi
push ecx
mov dword [eax], edx
call fcn.10037fe0
add esp, 0x14
mov dword [esp + 0x2a0], 0xffffffff
mov eax, dword [esp + 0x18]
cmp eax, edi
mov dword [esp + 0x14], vtable.CEllipticCurveContext.0
je 0x1002a15d
push eax
call fcn.10034fb4
add esp, 4
mov dword [esp + 0x18], edi
mov eax, dword [esp + 0x1c]
cmp eax, edi
je 0x1002a172
push eax
call fcn.10034fb4
add esp, 4
mov dword [esp + 0x1c], edi
xor eax, eax
jmp 0x1002a17b
mov eax, 1
mov ecx, dword [esp + 0x298]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x280]
xor ecx, esp
call fcn.100346f8
mov esp, ebp
pop ebp
ret